足力健前端,vue版本

uni.config.js 1.8KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. const fs = require('fs')
  2. const path = require('path')
  3. function getTemplatePath (template) {
  4. if (template) {
  5. const userTemplate = path.resolve(process.env.UNI_INPUT_DIR, template)
  6. if (fs.existsSync(userTemplate))
  7. return userTemplate
  8. }
  9. return path.resolve(process.env.UNI_CLI_CONTEXT, 'public/index.html')
  10. }
  11. function transform(content) {
  12. if (process.env.NODE_ENV === 'production') {
  13. return content + // shadow
  14. `body::after{position:fixed;content:'';left:-1000px;top:-1000px;-webkit-animation:shadow-preload .1s;-webkit-animation-delay:3s;animation:shadow-preload .1s;animation-delay:3s}@-webkit-keyframes shadow-preload{0%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}}@keyframes shadow-preload{0%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}100%{background-image:url(https://cdn.dcloud.net.cn/img/shadow-grey.png)}}`
  15. }
  16. return content
  17. }
  18. function getIndexCssPath(assetsDir, template) {
  19. const VUE_APP_INDEX_CSS_HASH = process.env.VUE_APP_INDEX_CSS_HASH
  20. if (VUE_APP_INDEX_CSS_HASH) {
  21. try {
  22. const templateContent = fs.readFileSync(getTemplatePath(template))
  23. if (/\bVUE_APP_INDEX_CSS_HASH\b/.test(templateContent)) {
  24. return path.join(assetsDir, `[name].${VUE_APP_INDEX_CSS_HASH}.[ext]`)
  25. }
  26. } catch (e) {}
  27. }
  28. return assetsDir
  29. }
  30. module.exports = {
  31. options: {
  32. cssVars: {
  33. '--status-bar-height': '0px'
  34. },
  35. filterTag: 'wxs',
  36. vue: '@dcloudio/vue-cli-plugin-uni/packages/h5-vue'
  37. },
  38. copyWebpackOptions(platformOptions, vueOptions) {
  39. return [{
  40. from: require.resolve('@dcloudio/uni-h5/dist/index.css'),
  41. to: getIndexCssPath(vueOptions.assetsDir, platformOptions.template),
  42. transform
  43. },
  44. 'hybrid/html'
  45. ]
  46. }
  47. }