vue.config.js 1.7 KB

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