我在我的项目中添加了一个新的npm包,并在我的一个模块中要求它。
现在我从webpack得到这个消息,
注意:代码生成器已经取消了“D:/path/to/project/node_modules/ramda/dist/ramda.js”的样式,因为它超过了“100KB”的最大值。
这是什么意思?我需要采取一些行动吗?
我在我的项目中添加了一个新的npm包,并在我的一个模块中要求它。
现在我从webpack得到这个消息,
注意:代码生成器已经取消了“D:/path/to/project/node_modules/ramda/dist/ramda.js”的样式,因为它超过了“100KB”的最大值。
这是什么意思?我需要采取一些行动吗?
当前回答
在webpack 4的多个模块规则中,你只需要在你的.js规则中这样做:
{
test: /\.(js)$/,
loader: 'babel-loader',
options: {
presets: ['es2015'], // or whatever
plugins: [require('babel-plugin-transform-class-properties')], // or whatever
compact: true // or false during development
}
},
其他回答
在webpack 4的多个模块规则中,你只需要在你的.js规则中这样做:
{
test: /\.(js)$/,
loader: 'babel-loader',
options: {
presets: ['es2015'], // or whatever
plugins: [require('babel-plugin-transform-class-properties')], // or whatever
compact: true // or false during development
}
},
有关更多解释,请阅读Babel选项-紧凑,它是Babel编译器的选项,命令不包括多余的空格字符和行结束符。以前它的阈值是100KB,但现在是500KB。
我建议您在开发环境中禁用此选项,使用.babelrc文件中的代码。
{
"env": {
"development" : {
"compact": false
}
}
}
对于生产环境,Babel使用默认的自动配置。
这似乎是一个通天塔错误。我猜您使用babel-loader,并且没有从加载器测试中排除外部库。据我所知,这条信息是无害的,但你仍然应该这样做:
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel' }
]
看一看。是这样吗?
这可能不是最初OP问题的情况,但是:如果您超过了默认的最大大小,这可能是您遇到的其他问题的症状。在我的情况下,我有警告,但最终它变成了一个致命错误:MarkCompactCollector:半空间复制,回调在旧代分配失败- JavaScript堆出内存。 原因是我动态地导入了当前模块,所以这最终导致了一个无休止的循环……
我试过里卡多·斯图文的方法,但对我没用。最终起作用的是在我的.babelrc文件中添加"compact": false:
{
"compact": false,
"presets": ["latest", "react", "stage-0"]
}