vue.config.js 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  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.NODE_ENV==='production'||process.env.NODE_ENV==='test'?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')
  20. .tap(args => {
  21. args[0].alias = process.env.VUE_APP_ALIAS
  22. args[0].name = process.env.VUE_APP_TITLE
  23. return args
  24. })
  25. config.externals( {
  26. vue: "Vue",
  27. vuex: "Vuex",
  28. axios: "axios",
  29. lodash: "_",
  30. "vue-router": "VueRouter",
  31. "vant": "vant"
  32. })
  33. const svgRule = config.module.rule("svg");
  34. // 清除已有的所有 loader。
  35. // 如果你不这样做,接下来的 loader 会附加在该规则现有的 loader 之后。
  36. svgRule.uses.clear();
  37. // 添加要替换的 loader
  38. // svgRule.use("vue-svg-loader").loader("vue-svg-loader");
  39. svgRule
  40. .use("svg-sprite-loader")
  41. .loader("svg-sprite-loader")
  42. .options({
  43. symbolId: "icon-[name]"
  44. });
  45. },
  46. css: {
  47.       loaderOptions: {
  48.         postcss: {
  49.           plugins: [
  50.             autoprefixer(),
  51.             pxtoviewport({
  52.               viewportWidth:375
  53.             })
  54.           ]
  55.         }
  56.       }
  57.     }
  58. }