楊__羊羊
2023-06-15 17:16:11
我在 Bootstrap 5 項目上使用 Gulp 4 和 Webpack 5,當我捆綁我的腳本時,Gulp 生成了一個bundle.js(如預期的那樣),但它也生成了一個bundle.js.LICENSE.js文件。我在我的構建任務中看不到任何可以創建它的東西。似乎只有當我import 'bootstrap'或import Popper from 'popper.js/dist/umd/popper'.有沒有辦法禁用該 LICENSE 文件的生成?我猜 Bootstrap 5 js 中有某些東西迫使 Gulp 或 Webpack 創建該文件(?)任何想法將不勝感激。這是我的構建腳本任務:// Build Scripts Taskconst buildScripts = (mode) => (done) => { let streamMode; if (mode === 'development') { streamMode = require('./webpack/config.development.js'); } else if (mode === 'production') { streamMode = require('./webpack/config.production.js'); } else { streamMode = undefined; } ['development', 'production'].includes(mode) ? pump([ gulp.src(srcPath('js')), vinylNamed(), webpackStream(streamMode, webpack), gulpSourcemaps.init({ loadMaps: true }), through2.obj(function (file, enc, cb) { const isSourceMap = /\.map$/.test(file.path); if (!isSourceMap) { this.push(file); } cb(); }), gulpBabel({ presets: ['@babel/preset-env'], }), ...((mode === 'production') ? [gulpUglify()] : []), gulpSourcemaps.write('./'), gulp.dest(distPath('js')), browserSync.stream(), ], done) : undefined;};
1 回答

皈依舞
TA貢獻1851條經驗 獲得超3個贊
Webpack 用于優化文件的插件稱為 Terser,它具有將與特定模式匹配的內聯注釋提取到外部文件(默認情況下是您看到的許可模式)的選項。
https://webpack.js.org/plugins/terser-webpack-plugin/
module.exports = {
optimization: {
minimize: true,
minimizer: [
new TerserPlugin({
terserOptions: {
//...
extractComments: true
},
}),
],
},
}
默認情況下僅使用 /^**!|@preserve|@license|@cc_on/i regexp 條件提取評論并刪除剩余的評論。如果原始文件名為 foo.js,則評論將存儲到 foo.js.LICENSE.txt。terserOptions.format.comments 選項指定是否保留注釋,即可以在提取其他注釋或什至保留已提取的注釋的同時保留一些注釋(例如注釋)。
檢查您的config.production.jswebpack 文件,看看是否在其中使用了這些選項。它確實默認為true。
添加回答
舉報
0/150
提交
取消