我一直试图在webpack捆绑的js文件中删除注释。 我已经尝试了几种方法,但它仍然没有工作,我得到了像
这样的评论"/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\ ...
为此,捆绑文件变得越来越大。目前巨大的1.6mb大小。 我试过这个
new webpack.optimize.UglifyJsPlugin({
sourceMap: false,
compress: {
sequences: true,
dead_code: true,
conditionals: true,
booleans: true,
unused: true,
if_return: true,
join_vars: true,
drop_console: true
},
mangle: {
except: ['$super', '$', 'exports', 'require']
},
output: {
comments: false
}
})
也是这个
new webpack.optimize.UglifyJsPlugin({
compress: { warnings: false },
sourceMap: false,
output: false
})
还将环境设置为生产
set NODE_ENV=production
我无法理解我错在哪里。 请帮忙。 提前谢谢。
答案 0 :(得分:7)
UglifyJsPlugin
, @licence
也不会删除comments: false
条评论。你可以阅读它on webpack GitHub issue。
如果您要删除此类评论(风险自负),则应搜索其他加载者,例如webpack-comment-remover-loader
或stripcomment-loader
。
答案 1 :(得分:1)
这就是你需要的:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>Default row</td>
</tr>
</table>
<button id='add-row'>Add row</button>
来自here。
这是来自Webpack的行,@ Everettss是对的。
new UglifyJsPlugin({
comments: false,
}),
你可以查看正则表达式,确认索克拉stated。
我不确定UglifyJsPlugin,但通常如果您在其他地方提供法律声明,则应删除所有评论。
如果您的律师确认这是正常的,您可以尝试调整File: /webpack/lib/optimize/UglifyJsPlugin.js
097: let output = {};
098: output.comments = Object.prototype.hasOwnProperty.call(options, "comments") ? options.comments : /^\**!|@preserve|@license/;
099: output.beautify = options.beautify;
100: for(let k in options.output) {
101: output[k] = options.output[k];
102: }
,以便正则表达式失败,评论将不再存在。
答案 2 :(得分:0)
对于webpack 4,这对我有用:
// webpack.config.js
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');
module.exports = {
// other config properties...
optimization: {
minimizer: [
new UglifyJsPlugin({
uglifyOptions: {
output: {
comments: false
}
}
})
]
}
};
您可以在official docs中找到更多信息。
答案 3 :(得分:-1)
如果您想要删除 @words ,并且无法在线找到解决方案,我建议您执行查找和替换。
编写正则表达式以查找并替换为空白字符。