【问题标题】:React Hot Module Reloader preventing mocha tests from runningReact Hot Module Reloader 阻止 mocha 测试运行
【发布时间】:2016-08-29 09:32:44
【问题描述】:

我有一个 React 项目,它正在运行 react-transform-hmr 热模块重新加载器,并且在我实施 mocha 测试之前一切都运行良好。 当我运行测试时,出现以下错误:

throw new Error('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')
    }
    ]
  }

谢谢你:)

【问题讨论】:

    标签: javascript reactjs


    【解决方案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

    【讨论】:

    • 您可以将所有这些参数 (--compilers js:babel-core/register --require ./tests/test-helper.js \"./tests/**/*@(.js|.jsx)\"") 放入文件 test/mocha.opts
    猜你喜欢
    • 2016-07-08
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 2015-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多