我正在使用带有 babel 和 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>
);
}
}
但我收到以下错误:
未捕获的 ReferenceError:React 未定义
我理解错误: JSX 位被编译到React.createElement(...)
但React
不在当前范围内,因为它没有被导入。
我的问题是:解决此问题的干净方法是什么?我是否必须以某种方式React
使用 webpack 全局公开?
使用的解决方案:
我遵循了@salehen-rahman 的建议。
在我的 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'