项目作者: zsirfs

项目描述 :
webpack plugin for version
高级语言: JavaScript
项目地址: git://github.com/zsirfs/webpack-plugin-auto-version.git
创建时间: 2018-05-17T03:41:24Z
项目社区:https://github.com/zsirfs/webpack-plugin-auto-version

开源协议:

下载


自动版本管理





以 webpack 插件方式执行

feature

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

使用方法

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

semver

版本: 1.0.0

bash 使用方法:

  1. $ npm run build -- major # 2.0.0
  2. $ npm run build -- minor # 1.1.0
  3. $ npm run build -- patch # 1.0.1

标签使用方法

options:

  1. {
  2. "template": "[VERSION]version[/VERSION]"
  3. }

roadhog 用法

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

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

建立 webpack.config.js

  1. const WebpackPluginAutoPlugin = require('webpack-plugin-auto-version')
  2. module.exports = (config) => {
  3. if (process.env.NODE_ENV === 'production') {
  4. config.plugins.push(
  5. new WebpackPluginAutoPlugin({
  6. isAsyncJs: true
  7. })
  8. )
  9. }
  10. return config
  11. }

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

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 支持
  • 修复部分问题