Skip to content

Latest commit

 

History

History
204 lines (135 loc) · 6.09 KB

README-zh.md

File metadata and controls

204 lines (135 loc) · 6.09 KB

update-popup

Build Status NPM Download NPM Version NPM License PRs Welcome Automated Release Notes by gren

Table of Contents

Features

检测当前运行的应用是否是最新版本,如若不是,则提醒刷新以使用新版本。

⬆ Back to Top

Install

yarn add @femessage/update-popup

⬆ Back to Top

Usage

你需要通过环境变量 UPDATE_POPUP_VERSION 来传入版本号,后续每次迭代更新只需要修改比当前大的版本号即可。

环境变量

# .env
UPDATE_POPUP_VERSION=1.0.0 # 如果有必要,可以支持更多位数。如:1.0.0.1,1.0.0.1.1

也可以使用 options.auto 来实现自动更新版本。

工程配置文件

// nuxt.config.js
const config = {
  modules: ['@femessage/update-popup/nuxt', {options}]
}

// vue.config.js 或者 poi.config.js
const UpdatePopup = require('@femessage/update-popup')
const config = {
  chainWebpack: config => {
    config.plugin('femessage-update-popup').use(UpdatePopup, [{options}])
  }
}

就这么简单!

⬆ Back to Top

Options

options.publicPath

使用独立的 publicPath,一般情况下不需要设置此参数。

⬆ Back to Top

options.auto

  • Type: boolean
  • Default: false

是否需要自动更新版本,需要配合 options.versionType 一起使用。

注意:开启此功能,环境变量 UPDATE_POPUP_VERSION 则不会再生效。

options.versionType

  • Type: 'timestamp' | 未来支持更多
  • Default: timestamp

自动生成的 version 的方式,可选值:

  • timestamp:

    使用当前时间戳,它看上去是这样的:1603184005919.0.0,把时间戳放在版本号的第一位,是为了保证无论如何都会大于已有的版本。

    注意:这将失去版本语义化的控制。

options.inject

  • Type: boolean
  • Default: true

是否自动添加到 webpack 入口文件,一般情况下不需要设置此参数。
如果设置为 false 需要手动将 @femessage/update-popup/app/main 注入到你的代码中。
何时需要设置此参数请参阅 Notice.QianKun(乾坤)

options.envKey

  • Type: string
  • Default: 'UPDATE_POPUP_VERSION'

指定获取环境变量的 key 。e.g. process.env.UPDATE_POPUP_VERSION=1.0.0

options.versionFileName

  • Type: string
  • Default: 'update_popup_version.txt'

版本号文件名。

Notice

QianKun(乾坤)

此插件会自动生成一个普通的 js 文件并添加到 webpack 入口文件中,
但由于子应用的入口文件需要 导出生命周期钩子 的要求,
因此需要禁止自动添加入口文件,则做如下的调整:

在子应用中使用

调整工程配置文件

# nuxt.config.js
const config = {
-  modules: ['@femessage/update-popup/nuxt']
+  modules: [['@femessage/update-popup/nuxt'], { inject: false }]
}

# vue.config.js 或者 poi.config.js
const config = {
  chainWebpack: config => {
    config.plugin('update-popup').use(UpdatePopup, [{
+     inject: false
    }])
  }
}

最后在你的子应用入口文件添加

+ import '@femessage/update-popup/app/main'

⬆ Back to Top

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

Please refer to our contributing guide.

⬆ Back to Top

Contributors

Thanks goes to these wonderful people (emoji key):


EVILLT

💻 ⚠️ 🤔 📖 🚧

This project follows the all-contributors specification. Contributions of any kind welcome!

⬆ Back to Top

License

MIT

⬆ Back to Top