如何让webpack转换反应生成文件?

时间:2017-09-29 23:35:48

标签: reactjs webpack

当我使用webpack将我的应用程序与React 16捆绑在一起时,我在浏览器中获得了“未捕获的ReferenceError:require未定义”的反应和react-dom。导致错误的资源是react.production.min.js和react-dom.production.min.js(来自node_modules / react / cjs)。当我检查这些文件时,我清楚地看到了作为错误来源的“require”引用。 React 15.6.2(或更低版本)不会发生这种情况,因为生产捆绑包没有任何需求调用。似乎webpack没有改变那些文件,我不知道为什么不。我谷歌和谷歌,重新阅读webpack文档,我只是空手而归。我确定这是一个基本的webpack配置问题,但我只是没有得到它。我正在使用webpack 3.6.0。 React 15.6.2完全相同的项目(这似乎是合理的,因为那些生产包没有任何需求调用)。当我创建“生产”包时,这只是一个问题。在“开发模式”中,我使用react-hot-loader(版本3.0.0-beta.7)并且没有问题。开发和生产webpack配置共享完全相同的module.rules:

config.module.rules = [
  // javascript
  {
    test: /\.jsx?$/,
    use: 'babel-loader',
    include: [path.join(__dirname, '../src/client'), path.join(__dirname, '../src/common')]
  },
];

如何让webpack转换反应生成文件?我很惊讶我是唯一一个遇到这个问题的人......但有时我觉得webpack对我有更多的控制权。任何提示都会非常感激。

1 个答案:

答案 0 :(得分:10)

我知道这将是一个简单的解决方案:需要删除以下行

noParse: /\.min\.js/

来自文档:"防止webpack解析与给定正则表达式匹配的任何文件。忽略的文件不应该调用导入,要求,定义或任何其他导入机制。"

由于某些原因,我把这个问题包括在内,这个问题当然是显而易见的。令人惊讶的是,你可以盯着某些东西几个小时,而不是看到最明显的东西。