我有一个 React 项目,它正在运行 react-transform-hmr
热模块重新加载器,在我实现摩卡测试之前,一切都运行良好。 当我运行测试时,出现以下错误:
throw new Error('locals[0] does not appear to be a
module
object with Hot Module ' + 'replacement API enabled. You should disable react-transform-hmr in ' + 'production by usingenv
section in Babel configuration. See the ' + 'example in README: https://github.com/gaearon/react-transform-hmr');
我用谷歌搜索了这个,发现一些信息提到将热模块重新加载设置从 .babelrc
文件移到 Webpack 配置中,我这样做了,并且测试运行良好,但随后热模块重新加载不起作用。
经过一番尝试,但没有让两者一起工作后,我又回过神来,并认为我会寻求一些帮助,因为我真的陷入了困境。有什么想法我能做什么吗?
我的babel配置如下:
{
"presets": ["react", "es2015", "stage-1"],
"env": {
"development": {
"plugins": [
["transform-object-rest-spread"],
["transform-react-display-name"],
["react-transform", {
"transforms": [{
"transform": "react-transform-hmr",
"imports": ["react"],
"locals": ["module"]
}, {
"transform": "react-transform-catch-errors",
"imports": ["react", "redbox-react"]
}]
}]
]
},
"production": {
"plugins": [
["transform-object-rest-spread"],
["transform-react-display-name"]
]
}
}
}
我的 webpack 配置如下:
module: {
loaders: [
// js
{
test: /\.js$/,
loaders: ['babel'],
include: path.join(__dirname, 'client')
}
]
}
谢谢:)
请您参考如下方法:
在 package.json 中使用以下内容:
"test": "export NODE_ENV=testing|| set NODE_ENV=testing&& mocha --compilers js:babel-core/register --require ./tests/test-helper.js\"./tests/**/*@(.js|.jsx)\"",
这取自 here .