js:webpack插件BannerPlugin添加版权信息

打包的时候要加入一些版权信息,如果每次打完包都手动添加,岂不是很累。

可以使用webpack插件BannerPlugin添加版权信息

最简单的配置

const webpack = require('webpack')

module.exports = {
  ...
  plugins: [
    new webpack.BannerPlugin('版权信息')
  ]
}


进阶配置

将变量信息从package.json文件引入,使用nunjucks的模板渲染能力,将模板和数据组合成最终输出的内容

安装相关依赖

npm i nunjucks moment -D
// 引入版权插入必要
const webpack = require('webpack');
const { name, version, author, homepage, description } = require('./package');
const nunjucks = require('nunjucks');
const moment = require('moment');

// 使用模板渲染
const LICENSE = nunjucks.render('LICENSE', {
  name: name,
  version: version,
  description: description,
  author: author,
  homepage: homepage,
  date: moment().format('YYYY-MM-DD HH:mm:ss'),
});

module.exports = {
  ...
  optimization: {
    minimizer: [
      //压缩CSS代码
      new CssMinimizerPlugin(),

      //压缩js代码
      new TerserPlugin({
        extractComments: false, // 不将注释提取到单独的文件中
      }),

      // 添加版权信息
      new webpack.BannerPlugin({
        entryOnly: true,
        banner: LICENSE,
        raw: true,
      }),
    ],
  },
}

LICENSE模板内容

/*!
 * Name {{name}}  
 * Version {{version}}  
 * Author: {{author}}
 * Description: {{description}}
 * Homepage:{{homepage}}
 * Date: {{date}}
 */