我正在编写一个 npm 模块,该模块通过 node 与 cli 运行 webpack 编译器。我已经有一段时间没有测试我的构建函数了,因为它正在工作,但我最近运行了它,而且我似乎无法让 webpack 来缩小捆绑 js。我的 Node 、webpack 和一些依赖版本进行了一些小更新,但没有重大升级,也没有重大更改。 我一直在绞尽脑汁地试图让这个功能再次发挥作用,并且正在向社区伸出援手,让我保持理智。
一切似乎都编译得很好,只有缩小似乎停止了工作。优化对象是作为此故障排除的一部分添加的,并且在以前没有的情况下正常工作。
假设配置看起来没问题,webpack 或 Node 中是否有任何新内容可能会阻止其工作?我被难住了...
webpack 配置...
({
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.js',
path: '/build'
},
plugins: [
new Write,
new Extract({
filename: 'project_1.0.0.css'
})
],
resolve: {
modules: ['node_modules']
}
});
更新:找到解决方案
该问题是由于output.filename 的.jss
扩展名造成的。将其更新为 .js
解决了该问题。然而,在我看来,这仍然是一个奇怪的结果。如果我感到好奇,我可能会发布另一个更新并解释 webpack 的行为
最佳答案
因此,在为堆栈溢出帖子模拟 webpack 配置 js 对象的过程中(我有一些变量和某些值的函数),我注意到对于 output.filename,我有 project.jss
而不是 project.js
。我将它与 Extract 插件文件名混淆,并制作了一个 js/css 混合扩展...当我将其更正为 .js 时,它现在再次工作...这很棒...但是...
为什么会破坏它?显然你不能只创建一个包含你想要的任何扩展的包...但是为什么它不会抛出错误,为什么缩小是唯一不起作用的事情...这些都是更多的反问句,但我内心的程序员想弄清楚为什么...似乎做它正在做的事情会是额外的工作。
@jayarjo 感谢您抽出时间回复。我不确定如果我没有在那里格式化缩进来尝试你的代码,我是否会发现这一点。 :)
关于node.js - webpack 不再缩小包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55429633/