您应该使用 Babel 配置中的 `env` 部分在生产中禁用 react-transform-hmr

Posted

技术标签:

【中文标题】您应该使用 Babel 配置中的 `env` 部分在生产中禁用 react-transform-hmr【英文标题】:You should disable react-transform-hmr in production by using `env` section in Babel configuration 【发布时间】:2016-10-28 20:01:26 【问题描述】:

我正在使用 babel-cli 进行 jsx 和 es6 功能的转译

我改变了我的构建命令

来自

"build": "node build",

"build": "babel-node build",

之前一切正常

但是当我运行构建命令时,我得到了这个错误

错误:locals[0] 似乎不是启用了热模块替换 API 的 module 对象。您应该使用 Babel 配置中的 env 部分在生产中禁用 react-transform-hmr。请参阅自述文件中的示例:https://github.com/gaearon/react-transform-hmr

另见截图

所以我应该在 Babel 配置中使用 env 部分在生产中禁用 react-transform-hmr

这是我的 .babelrc,就像说明一样


  "presets": ["react", "es2015"],
  "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"]
      ]
    
  

我做错了什么?有什么推荐吗?

【问题讨论】:

如果你使用 gulp:***.com/questions/28787457/… 【参考方案1】:

我必须将 NODE_ENV=production 添加到命令中

"build": "NODE_ENV=production babel-node build"

【讨论】:

这根本不能解决问题,你只是通过不构建开发环境来解决它。

以上是关于您应该使用 Babel 配置中的 `env` 部分在生产中禁用 react-transform-hmr的主要内容,如果未能解决你的问题,请参考以下文章

vue-cli中的babel配置文件.babelrc详解

webpack配置bable

element-ui实现部分引用

element-ui实现部分引用

@babel/preset-env 与@babel/plugin-transform-runtime 使用及场景区别

使用babel