React Hot Module Reloader防止mocha测试运行

时间:2016-08-29 09:32:45

标签: javascript reactjs

我有一个正在运行react-transform-hmr热模块重新加载器的React项目,所有这些都运行良好,直到我实现了mocha测试。 当我运行测试时,我收到以下错误:

  

抛出新错误('locals [0]似乎不是module对象   启用热模块'+'替换API。你应该禁用   通过使用Babel中的env部分,在'+'生产中使用react-transform-hmr   组态。请参阅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')
    }
    ]
  }

谢谢:)

1 个答案:

答案 0 :(得分:1)

在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