node.js - webpack 不再缩小捆绑包
问题描述
我正在编写一个通过 node vs cli 运行 webpack 编译器的 npm 模块。我有一段时间没有测试我的构建功能,因为它正在工作,但我最近运行了它,我似乎无法让 webpack 缩小捆绑 js。我的节点、webpack 和一些依赖版本有一些小的更新,但没有重大升级和重大更改。我一直在努力让这项工作再次发挥作用,并且正在向社区伸出援手,让我保持清醒。
一切似乎都编译得很好,只有缩小似乎停止工作。优化对象是作为此故障排除的一部分添加的,并且之前没有正常工作。
假设配置看起来不错,webpack 或 node 中是否有任何新的东西可能会阻止它工作?我难住了……
网络包配置...
({
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']
}
});
更新:找到解决方案
问题是由于.jss
output.filename 的扩展。更新它以.js
解决问题。但是,IMO 仍然是一个奇怪的结果。如果我好奇,我可能会发布另一个更新,解释 webpack 的行为
解决方案
所以在为堆栈溢出帖子模拟 webpack config js 对象的过程中(我有一些变量和函数用于一些值),我注意到对于 output.filename,我有project.jss
而不是project.js
. 我将它与 Extract 插件文件名混淆,并制作了一个 js/css 混合扩展名......当我将其更正为 .js 时,它现在又可以工作了......这很棒......但是......
为什么会破坏它?显然你不能只创建一个包含任何你想要的扩展的包......但是为什么它不会抛出错误,为什么缩小是唯一不起作用的东西......这些都是修辞问题,但我的程序员想要找出原因.. 做它正在做的事情似乎需要额外的工作。
@jayarjo 感谢您抽出宝贵时间回复。我不确定如果我没有在那里格式化缩进来尝试你的代码,我会不会注意到这一点。:)
推荐阅读
- mysql - Mac OS Mojave 导入 MySQLDB 导入麻烦
- vagrant - 使用 Parallels 和 Vagrant 的 Laravel Homestead 无法扩展更多磁盘大小
- dotnet-httpclient - How to get an IP address from an HttpResponseMessage?
- angular - 获取错误作为类型的参数 '{ headers: HttpHeaders; }' 不可分配给“HttpParamsOptions”类型的参数
- ios - 我需要从我的 firebase 数据库中获取数据并将其放入标签中,但数据需要与我的 tableView 单元格标题相对应
- javascript - Concat $scope variables
- protocol-buffers - 如何插入重复的ptrfiled,就像vector.insert(iterator)
- bash - 使用 jq 解析 JSON 数组
- c - 试图将二进制数连接成一个值
- javascript - 验证循环中的元素