version-patch-webpackplugin
v1.0.12
Published
webpack build autoGenerate version tool
Downloads
4
Maintainers
Readme
Version Patch WebpackPlugin
一个提供自动生成版本号信息的webpack插件
Install
npm i --save-dev version-patch-webpackplugin
yarn add --dev html-webpack-plugin
插件默认会在webpack mode:production时,检查output目录下的version.json文件。不存在,则初始化生成。存在则追加一个版本信息对象。
版本信息对象
| 属性 | 说明 | 类型 | 默认值 | | ------------ | ---------------------- | ------- |------- | | time | 本次生成版本文件的时间字符串 | string | 当前时间 | |number | 在上次版本号基础上叠加 | string | 0.0.00 |
可选的插件配置选项
| 属性 | 说明 | 类型 | 默认值 | 可选值 | | ------------ | ---------------------- | ------- |------- | ------- | | fileName | 版本文件名称,必须为json | string | version.json | - | | fileNamePrefix | 文件名前缀 | string | '' | - | | reWrite | 是否重写版本文件 | boolean | false | - | | useKey | 决定版本号取时间还是数字 | string | number | [time,number] | | timeFormat | 可被解析的时间格式字符串 | string | YYYY-MM-DD hh:mm:ss | - | | numberSeed | 初始化版本号 | string | 0.00.00 | - | | numberStep | 每次递增的值 | string | 0.00.01 | - | | ignoreMode | 忽略环境变量mode, 所有环境下都会生成版本信息, 测试用 | boolean | false|
Usage
webpack.config.js
const VersionPatchPlugin = require('version-patch-webpackplugin')
module.exports = {
mode: 'production',
entry:'./src/index.js',
output: {
filename: 'index.js',
path: path.resolve(__dirname, 'dist')
},
plugins: [
new VersionPatchPlugin(),
]
}
一切正常,会在dist目录下产生一个version.json文件, 格式如下
[{
{"time":"2020-02-57 07:09:55","number":"0.0.00"}
}]
之后每次build push 一个新对象,number会根据设置的numberStep递增,time为根据timeformat的当前时间格式化字符串。 版本信息也将挂载在window对象下
window._version = 0.0.00
window._versionHistory = [{
{"time":"2020-02-57 07:09:55","number":"0.0.00"}
}]
注意如果dist没有version.json文件且在开发环境下
window._versionHistory = []
window._version = null
如果项目使用了clean-webpack-plugin, 请忽略version.json文件,配置如下
new CleanWebpackPlugin({
cleanOnceBeforeBuildPatterns:['**/*,', '!version.json'],
})