publish.cjs 1013 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. const fs = require('fs')
  2. const publish = () => {
  3. const src = './.output/public'
  4. const dest = '../niucloud/public/web'
  5. solve()
  6. // 目标目录不存在停止复制
  7. try {
  8. const dir = fs.readdirSync(dest)
  9. } catch (e) {
  10. return
  11. }
  12. // 删除目标目录下文件
  13. fs.rm(dest, { recursive: true }, err => {
  14. if(err) {
  15. console.log(err)
  16. return
  17. }
  18. fs.cp(src, dest, { recursive: true }, (err) => {
  19. if (err) {
  20. console.error(err)
  21. }
  22. })
  23. })
  24. }
  25. const solve = () => {
  26. const fn = './.output/public/index.html'
  27. const fc = fs.readFileSync(fn, 'utf-8')
  28. let text = new String(fc)
  29. text = text.replace('<script>window.__NUXT__', '<script>const match = location.href.match(/\\/web\\/(\\d*)\\//);window.__NUXT__')
  30. text = text.replace('baseURL:"\\u002Fweb\\u002F"', 'baseURL: match ? `/web/${match[1]}/` : `/web/`')
  31. fs.writeFileSync(fn, text, 'utf8')
  32. }
  33. publish()