我在我的项目中添加了一个新的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
     }
},

其他回答

我试过里卡多·斯图文的方法,但对我没用。最终起作用的是在我的.babelrc文件中添加"compact": false:

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

这可能不是最初OP问题的情况,但是:如果您超过了默认的最大大小,这可能是您遇到的其他问题的症状。在我的情况下,我有警告,但最终它变成了一个致命错误:MarkCompactCollector:半空间复制,回调在旧代分配失败- JavaScript堆出内存。 原因是我动态地导入了当前模块,所以这最终导致了一个无休止的循环……

在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并在那里配置有选项属性的人。不能同时使用查询和选项。如果两者都存在,则会得到此错误

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-loader,并且没有从加载器测试中排除外部库。据我所知,这条信息是无害的,但你仍然应该这样做:

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

看一看。是这样吗?