什么“代码生成器优化了的样式,因为它超过了”100KB“的最大值”是什么意思?

我添加了一个新的npm包到我的项目,并需要在我的模块之一。

现在我从webpack得到这个消息,

build modulesNote: The code generator has deoptimised the styling of "D:/path/to/project/node_modules/ramda/dist/ramda.js" as it exceeds the max of "100KB".

这是什么意思? 我需要采取一些行动吗?

这与Babel编译器的compact选项有关,它命令“不包括多余的空白字符和行结束符。当设置为'auto'compact时,对于大于100KB的input大小设置为true。 默认情况下它的值是“auto”,所以这可能是你得到警告信息的原因。 请参阅Babel文档 。

您可以使用查询参数从Webpack中更改此选项。 例如:

 loaders: [ { test: /\.js$/, loader: 'babel', query: {compact: false} } ] 

这似乎是一个巴别尔错误 。 我猜你使用babel-loader,并且不会从你的loadertesting中排除外部库。 据我所知,这个信息不是有害的,但你仍然应该这样做:

 loaders: [ { test: /\.js$/, exclude: /node_modules/, loader: 'babel' } ] 

看一看。 是这样吗?

下面三个选项中的任何一个都可以摆脱这个信息(但是由于不同的原因,我想也有不同的副作用):

  1. 排除node_modules目录或明确include您的应用程序所在的目录(可能不包含超过100KB的文件)
  2. 将Babel选项 compact设置为true (实际上是“auto”以外的任何值)
  3. 将Babel选项设置为false (见上)

上面列表中的#1可以通过排除node_modules目录或显式地包含应用程序所在的目录来实现。

例如在webpack.config.js

 let path = require('path'); .... module: { loaders: [ ... loader: 'babel', exclude: path.resolve(__dirname, 'node_modules/') 

…或通过使用include: path.resolve(__dirname, 'app/') (同样在webpack.config.js )。

上面列表中的#2和#3可以通过本答案中build议的方法或(我的首选)通过编辑.babelrc文件来完成。 例如:

 $ cat .babelrc { "presets": ["es2015", "react"], "compact" : true } 

testing以下设置:

 $ npm ls --depth 0 | grep babel ├── babel-core@6.7.4 ├── babel-loader@6.2.4 ├── babel-preset-es2015@6.6.0 ├── babel-preset-react@6.5.0 

在react / redux / webpack / babel build中,通过删除脚本标签typestext / babel修复了这个错误

有错误:

 <script type="text/babel" src="/js/bundle.js"></script> 

没有错误:

 <script src="/js/bundle.js"></script> 

我尝试了里卡多·斯图文的方式,但是这对我没有用。 最后有效的是在我的.babelrc文件中添加“compact”:false:

 { "compact": false, "presets": ["latest", "react", "stage-0"] }