vue.config.js 1.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. const path = require('path')
  2. const autoprefixer = require('autoprefixer')
  3. const pxtoviewport = require('postcss-px-to-viewport')
  4. function resolve(dir) {
  5. return path.join(__dirname, dir)
  6. }
  7. module.exports = {
  8. publicPath: process.env.VUE_APP_PRE_PATH,
  9. outputDir: 'intelligent-medicine-abinet',
  10. productionSourceMap: false,
  11. devServer: {
  12. port: 8080,
  13. progress: false, // vue-cli-service serve 启动进度的显示和隐藏
  14. headers: {
  15. 'Access-Control-Allow-Origin': '*'
  16. }
  17. },
  18. chainWebpack: config => {
  19. config.plugin('html').tap(args => {
  20. args[0].alias = process.env.VUE_APP_ALIAS
  21. args[0].name = process.env.VUE_APP_TITLE
  22. return args
  23. })
  24. config.externals({
  25. vue: 'Vue',
  26. vuex: 'Vuex',
  27. axios: 'axios',
  28. lodash: '_',
  29. 'vue-router': 'VueRouter',
  30. 'vant': 'vant'
  31. })
  32. const svgRule = config.module.rule('svg')
  33. // 清除已有的所有 loader。
  34. // 如果你不这样做,接下来的 loader 会附加在该规则现有的 loader 之后。
  35. svgRule.uses.clear()
  36. // 添加要替换的 loader
  37. // svgRule.use("vue-svg-loader").loader("vue-svg-loader");
  38. svgRule
  39. .use('svg-sprite-loader')
  40. .loader('svg-sprite-loader')
  41. .options({
  42. symbolId: 'icon-[name]'
  43. })
  44. },
  45. css: {
  46. loaderOptions: {
  47. postcss: {
  48. plugins: [
  49. autoprefixer(),
  50. pxtoviewport({
  51. viewportWidth: 375
  52. })
  53. ]
  54. }
  55. }
  56. }
  57. }