Webpack不再压缩Bundle求助:Node调用Webpack编译异常
Webpack 压缩失效问题排查与解决(Node API 调用场景)
最近我在开发一个通过 Node API 而非 CLI 调用 Webpack 编译器的 npm 模块,之前构建功能一直正常,结果在给 Node、Webpack 及部分依赖做了小版本更新后,突然遇到了Webpack 无法压缩 Bundle JS的问题——整个编译过程没有报错,但输出的 JS 文件完全没被压缩。
一开始我以为是优化配置缺失,特意加上了 optimization 配置(之前没这个配置也能正常压缩),完整配置如下:
({ devtool: 'source-map', entry: '/foo.js', externals: [nodeExternals()], mode: 'production', target: 'web', module: { rules: [ { test: /\.coffee$/, use: [ { loader: 'babel-loader' }, { loader: 'coffee-loader' } ] }, { test: /\.js$/, use: [ { loader: 'babel-loader' } ] }, { test: /\.(sass|css)$/, use: [ { loader: Extract.loader, options: { sourceMap: true } }, { loader: 'css-loader', options: { sourceMap: true } }, { loader: 'sass-loader', options: { sourceMap: true } } ] } ] }, optimization: { minimize: true, noEmitOnErrors: true }, output: { filename: 'project_1.0.0.jss', path: '/build' }, plugins: [ new Write, new Extract({ filename: 'project_1.0.0.css' }) ], resolve: { modules: ['node_modules'] } });
折腾了好一阵才找到问题根源:output.filename 里我不小心把扩展名写成了 .jss,把它改回 .js 之后,压缩功能立刻就恢复正常了。
这个现象确实挺奇怪的,后续如果有精力我会深入研究下 Webpack 对非标准 JS 扩展名文件的处理逻辑,补充具体的行为解释。
内容的提问来源于stack exchange,提问作者brewster
相关产品推荐
相关产品推荐

