I'm using babel-loader
in my webpack.config.js
file but I noticed it removes the license comments of the form:
/*! whatever **/
Is there a way to preserve them?
I noticed babel has a comments
options, but I guess that would preserve any comment and not just the license ones.
const webpack = require('webpack');
module.exports = {
resolve: {
alias: {
'vue$': 'vue/dist/vue.js'
}
},
module: {
rules: [
{
test: /\.vue$/,
loader: 'vue-loader',
options: {
loaders: {
scss: 'vue-style-loader!css-loader!sass-loader',
js: 'babel-loader'
}
}
},
{
test: /\.js$/,
use: {
loader: 'babel-loader',
}
}
]
},
plugins: [
new webpack.optimize.UglifyJsPlugin({
compress: {
warnings: false,
drop_console: false,
}
})
],
};
I already tried:
plugins: [
new webpack.optimize.UglifyJsPlugin({
output:{
comments: true
}
})
As well as comments: '/^!/'
and comments: /^!/
.
Nothing works.
It only keeps comments if I remove the whole plugins
option from the webpack config.
I also tried using license comments such as:
/** comments */
/*! comments */
/*! @license comments */
/*! @preserve comments */
That's a bug, that's been in webpack/uglify since 2015, and never got fixed.
They supposedly fixed it using this by rather adding extractComments
to true
but still it won't work for some people so a year later in 2019 another PR has been opened to supposedly fixing it.
new UglifyJSPlugin({
sourceMap: true,
extractComments: true
})
So it's a known bug that has been hanging around for years. Maybe hacks do exist, but that's the general case.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With