我正在玩与巴贝尔和webpack的React(@ 13.3)。反应预计将在全球范围内提供
我有一个是这样的定义的组件:
import BaseComponent from './BaseComponent';
export default class SomeComponent extends BaseComponent {
render() {
return (
<div>
<img src="http://placekitten.com/g/900/600"/>
</div>
);
}
}
,但我得到了以下错误:
Uncaught ReferenceError: React is not defined
我理解的错误:JSX位被编译成React.createElement(...)
但React
ISN”因为它没有被导入,所以在当前范围内。
我的问题是: 什么是解决此问题的干净方法?我必须以某种方式在全球范围内使用webpack公开React
?使用
解决方案:
我跟着@ salehen拉赫曼建议。
在我webpack.config.js:
module: {
loaders: [{
test: /\.js$/,
exclude: /node_modules/,
loader: 'react-hot!babel?plugins[]=react-require'
}, {
test: /\.css$/,
loader: 'style!css!autoprefixer?browsers=last 2 versions'
}]
},
我还需要解决我的测试,所以我说这文件helper.js:
require('babel-core/register')({
ignore: /node_modules/,
plugins: ['react-require'],
extensions: ['.js']
});
我的测试,随后推出使用以下命令:
mocha --require ./test/helper.js 'test/**/*.js'
你试过'进口从阵营“反应” ;'? –
导入React应该位于BaseComponent中。 –
@JanakaStevens没关系。上面的代码仍然不能运行,考虑React是不是手动导入的,或者没有任何涉及到会自动导入React的变换器。 –