我有一个 javascript 文件,它不属于我的项目,但在提供时需要与它捆绑在一起。该文件的内容基本上是...
FT.manifest({
"foo": "bar",
"id": 3
})
...对象部分是格式良好的 JSON。
我已经设置了 webpack,并且正在使用copy-webpack-plugin
将这个文件./dist
连同我捆绑的所有 JS 和其他资产一起移动到我的文件夹中。
没有什么花哨的,只是一个文件到文件的直接复制......
new CopyWebpackPlugin({
patterns: [
{from:`./src/templates/${dirName}/manifest.js`, to: `${dirName}/manifest.js`},
]
})
当我在开发模式下运行 webpack 并且复制的文件看起来与原始文件完全相同时,这可以正常工作,但是当我在生产模式下运行时,内容会被内联并丢失对象部分中键周围的语音标记。输出现在看起来像这样......
FT.manifest({foo:"bar",id:3})
foo
注意和上没有语音标记id
。--mode=production
当删除换行符和其他格式(这很好)时,显然会发生一些优化,但它也会剥离语音标记,这会导致某些步骤出现问题。
那么,您能告诉我为什么会发生这种情况,我可以做些什么来阻止这个特定文件在复制过程中被优化。
我无法对特定文件的格式做任何事情,因为它来自第三方,但我可以使用其他插件或在需要时更改我的流程。
谢谢你的帮助