我有一个 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 using env 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 .


评论关闭
IT虾米网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!