versionPlugin.js 901 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. import { writeFile, existsSync, mkdir } from 'fs'
  2. import { sep } from 'path'
  3. const writeVersion = (versionFile, content) => {
  4. // 写入文件
  5. writeFile(versionFile, content, (err) => {
  6. if (err) throw err
  7. })
  8. }
  9. export function versionPlugin(options) {
  10. let config
  11. return {
  12. name: 'version-update',
  13. configResolved(resolvedConfig) {
  14. // 存储最终解析的配置
  15. config = resolvedConfig
  16. },
  17. buildStart() {
  18. // 生成版本信息文件路径
  19. const file = config.publicDir + sep + 'version.json'
  20. // 这里使用编译时间作为版本信息
  21. const content = JSON.stringify({ version: options.version })
  22. if (existsSync(config.publicDir)) {
  23. writeVersion(file, content)
  24. } else {
  25. mkdir(config.publicDir, (err) => {
  26. if (err) throw err
  27. writeVersion(file, content)
  28. })
  29. }
  30. },
  31. }
  32. }