我在我的项目中添加了一个新的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”的最大值。
这是什么意思?我需要采取一些行动吗?
当前回答
有关更多解释,请阅读Babel选项-紧凑,它是Babel编译器的选项,命令不包括多余的空格字符和行结束符。以前它的阈值是100KB,但现在是500KB。
我建议您在开发环境中禁用此选项,使用.babelrc文件中的代码。
{
"env": {
"development" : {
"compact": false
}
}
}
对于生产环境,Babel使用默认的自动配置。
其他回答
我有同样的问题与视频.js,添加特定的包解决了我的问题。
exclude: devMode ? /node_modules/ : [
/node_modules\/video.js/, /@babel(?:\/|\\{1,2})runtime|core-js/],
这似乎是一个通天塔错误。我猜您使用babel-loader,并且没有从加载器测试中排除外部库。据我所知,这条信息是无害的,但你仍然应该这样做:
loaders: [
{ test: /\.js$/, exclude: /node_modules/, loader: 'babel' }
]
看一看。是这样吗?
对于那些使用最新webpack并在那里配置有选项属性的人。不能同时使用查询和选项。如果两者都存在,则会得到此错误
Error: Provided options and query in use
相反,向选项名称generatorOpts添加新属性,然后在其下面添加属性紧凑。
loaders: [
{ test: /\.js$/, loader: 'babel', option: { generatorOpts: { compact: false } } }
]
对于那些和我一起工作的人(比如我)。你需要像这样做
config.module.rules.filter((rule) => rule.use && rule.use.loader === 'next-babel-loader')
.map((loader) => {
loader.use.options.generatorOpts = { compact: false };
return loader;
});
这与Babel编译器的压缩选项有关,该选项命令“不包括多余的空格字符和行结束符”。当设置为“auto”时,在输入大小为>100KB时,compact设置为true。”默认情况下,它的值是“auto”,所以这可能是您收到警告消息的原因。参见Babel文档。
您可以使用查询参数从Webpack更改此选项。例如:
loaders: [
{ test: /\.js$/, loader: 'babel', query: {compact: false} }
]
在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
}
},