web-version-popup
v1.1.4
Published
Display an update message at right bottom
Downloads
8
Readme
update-popup
Table of Contents
Features
Check if the current application is the latest version. If not, it reminds you to reload the current page.
Install
yarn add web-version-popup
Usage
popup.txt
You need to set environment variables WEB_VERSION
, when iteratively updating, modify the variables greater than current value.
Environment variables
# .env
WEB_VERSION=1.0.0 # Support more. e.g.: 1.0.0.1, 1.0.0.1.1
You may use auto to ignore this.
popup.js
Project configurations:
// nuxt.config.js
const config = {
modules: [['web-version-popup/nuxt', {auto: true}]]
}
// vite.config.js
import versionPopup from 'web-version-popup/vite'
export default defineConfig({
plugins: [versionPopup.default()]
})
// icejs build.config.ts
import versionPopup from 'web-version-popup/vite';
export default {
vite: true,
vitePlugins: [
versionPopup.default(),
],
};
// vue.config.js
// poi.config.js
// .umirc.ts
const config = {
chainWebpack: config => {
config
.plugin('web-version-popup')
.use(require('web-version-popup'), [{auto: true}])
}
}
// and remember add import in your App.js
// you may need to ignore IDE's warning
import 'web-version-popup/app/main'
It's so easy.
Options
publicPath
- Type:
string
- Default:
webpackConfig.output.publicPath
- Reference: webpack publicPath
Use publicPath setting
auto
- Type:
boolean
- Default:
false
to make updated version code automaticly
Note:If true,the environment variable WEB_VERSION
doesn't work.
versionType
- Type:
'timestamp' | Support more...
- Default:
timestamp
The way of automatically generated version,values:
timestamp
:Using the current timestamp,it looks like this:
1603184005919.0.0
. it was put in the first place to ensure that it would always be bigger than the previous version.Note:this will lose the control of version semantics.
inject
- Type:
boolean
- Default:
true
Does it need to be automatically added to the webpack entry file?
If set false
Need to manually web-version-popup/app/main
Inject it into your code.
When to set this parameter, see Notice.QianKun。
envKey
- Type:
string
- Default:
'WEB_VERSION'
Key of the environment variable. e.g. process.env.WEB_VERSION=1.0.0
versionFileName
- Type:
string
- Default:
'web_version.txt'
Version filename.
options.message
- Type:
string
- Default:
'发现新版本可用'
popup message
Notice
QianKun
This plugin automatically generates a common js file and adds it to the webpack entry file,
however, due to the requirement to export lifecycle hooks for the sub-application's entry file.
It is necessary to disable the automatic addition of entry files, with the following adjustments:
Use in sub-applications
Adjust the project configuration file
# nuxt.config.js
const config = {
- modules: ['web-version-popup/nuxt']
+ modules: [['web-version-popup/nuxt'], { inject: false }]
}
# vue.config.js or poi.config.js
const config = {
chainWebpack: config => {
config.plugin('update-popup').use(UpdatePopup, [{
+ inject: false
}])
}
}
Add an entry file in your Sub-application at last
+ import 'web-version-popup/app/main'
Contributing
For those who are interested in contributing to this project, such as:
- report a bug
- request new feature
- fix a bug
- implement a new feature
This project follows the all-contributors specification. Contributions of any kind welcome!