1.2.3 • Published 6 years ago

webpack-plugin-auto-version v1.2.3

Weekly downloads
12
License
ISC
Repository
github
Last release
6 years ago

自动版本管理

npm.io npm.io npm.io npm.io npm.io

以 webpack 插件方式执行

npm.io

feature

  • 自动插入 js,css,html 首行版本标记(完成和 HtmlWebpackPlugin 兼容)
  • 自动版本目录管理
  • 自动清理旧版本目录
  • 支持标签配置,动态替换版本
  • 支持version名称,能够动态替换资源名称中版本标签,例如version.name.xx 会自动替换 v3.2.2.main.xx
  • 打包报错,命令行 toast 提示
  • 支持 -- patch, -- minor, -- major 命令方式打包
  • 兼容 roadhogv2.0 以上(如果使用动态导入则需要 isAsyncJs 为 true)
  • 兼容 webpack4.0

使用方法

const WebpackAutoVersionPlugin = require('webpack-auto-version-plugin')
module.exports = {
  //...
  plugins: [
    new WebpackAutoVersionPlugin({
      // 文件名替换标记 [version] -> v1.2.2
      filenameMark: options.filenameMark,
      // 版权名称
      copyright: options.copyright || '[webpack-plugin-auto-version]',
      // 保存的时候格式化package.json的indent
      space: options.space || 2,
      // 是否自动清理老版本
      cleanup: options.cleanup || false,
      // 是否检测资源内的标签
      inspectContent: options.inspectContent || !!options.template,
      // 自定义资源内版本替换模板 [VERSION]version[/VERSION]
      template: options.template || `[${this.copyright}]version[/${this.copyright}]`,
      // 自定义忽略后缀,默认是['.html']忽略html文件打入版本文件夹
      ignoreSuffix: [], // 忽略的后缀或者文件关键词
      isAsyncJs: false,
      htmlTempSuffix: ['.html', '.vm', '.ejs', '.handlbars']
    })
  ]
}

semver

版本: 1.0.0

bash 使用方法:

$ npm run build -- major # 2.0.0
$ npm run build -- minor # 1.1.0
$ npm run build -- patch # 1.0.1

标签使用方法

options:

{
  "template": "[VERSION]version[/VERSION]"
}

roadhog 用法

roadhog 初始化会在public目录下有一个 index.html,该文件默认资源信息都是 link 和 script 都是 index,在 build 的时候,直接复制过去了,so 做法:

新建 index.ejs(不能是 index.html,详细见:#709)

建立 webpack.config.js

const WebpackPluginAutoPlugin = require('webpack-plugin-auto-version')

module.exports = (config) => {
  if (process.env.NODE_ENV === 'production') {
    config.plugins.push(
      new WebpackPluginAutoPlugin({
        isAsyncJs: true
      })
    )
  }
  return config
}

然后版本就可以正确看到啦。

npm.io

template 会被自动替换成和 package.json 对应的版本号

next

  • 支持 .editconfig 配置文件
  • 支持配置 package.json 配置文件,支持多项目
  • 支持开发环境
  • 支持 webpack 钩子函数
  • 支持版本判断
  • 支持 .versionrc|.versionrc.js|.versionrc.json配置

change log

v1.2.2

  • 修复ignoreSuffix兼容js和css文件判断

v1.2.1

  • 修复与webpack-copy-plugin兼容问题
  • 增加htmlTempSuffix选项

v1.2.0

  • 增加对 roadhog 支持
  • 修复部分问题