He estado tratando de eliminar los comentarios en el archivo js incluido en el paquete web. He intentado varios métodos pero aún no funciona y recibo comentarios como
"/**\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\ ...Para esto, el archivo incluido se está volviendo enorme. Actualmente enorme con un tamaño de 1,6 MB. he intentado esto
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 } })también esto
new webpack.optimize.UglifyJsPlugin({ compress: { warnings: false }, sourceMap: false, output: false })También establezca el entorno en producción.
set NODE_ENV=productionNo soy capaz de entender dónde me equivoco. Por favor ayuda. Gracias por adelantado.
UglifyJsPlugin no elimina los comentarios @licence incluso si establece comments: false por razones legales. Puede leer sobre esto en la edición de GitHub del paquete web .
Si desea eliminar este tipo de comentarios (bajo su propio riesgo), debe buscar otros cargadores como webpack-comment-remover-loader o stripcomment-loader .
Esto es lo que necesitas:
new UglifyJsPlugin({ comments: false, }),Desde aquí
Aquí está la línea del Webpack y @Everettss tiene razón.
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: }y puede verificar la expresión regular que confirma lo que dijo Sokra.
No estoy seguro acerca de UglifyJsPlugin, pero por lo general, si proporciona la declaración legal en otro lugar, debe eliminar todos los comentarios.
Si su abogado confirma que está bien, puede intentar modificar el /*! por lo que la expresión regular falla y los comentarios ya no estarán allí.
Para webpack 4 esto funcionó para mí:
// webpack.config.js const UglifyJsPlugin = require('uglifyjs-webpack-plugin'); module.exports = { // other config properties... optimization: { minimizer: [ new UglifyJsPlugin({ uglifyOptions: { output: { comments: false } } }) ] } };Puede encontrar más información en los documentos oficiales .