vue.config.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. module.exports = {
  2. publicPath: process.env.VUE_APP_PUB_URL,
  3. assetsDir:
  4. process.env.NODE_ENV === "production"
  5. ? "static" + new Date().toLocaleDateString().replace(/\//g, "-")
  6. : "static",
  7. productionSourceMap: false,
  8. devServer: {
  9. // * 接口跨域处理
  10. proxy: {
  11. "/api": {
  12. target: process.env.PROXY_API_URL,
  13. changeOrigin: true,
  14. },
  15. },
  16. disableHostCheck: true,
  17. },
  18. css: {
  19. sourceMap: false,
  20. loaderOptions: {
  21. scss: {
  22. prependData: `@import "~@/scss/variables.scss";`,
  23. },
  24. less: {
  25. lessOptions: {
  26. modifyVars: {
  27. "primary-color": "#39a4ff",
  28. "link-color": "#39a4ff",
  29. },
  30. javascriptEnabled: true,
  31. },
  32. },
  33. },
  34. },
  35. configureWebpack: {
  36. resolve: {
  37. extensions: [".js", ".vue", ".json", ".ts"],
  38. },
  39. },
  40. chainWebpack: (config) => {
  41. // * 移除prefetch和preload
  42. config.plugins.delete("prefetch");
  43. config.plugins.delete("preload");
  44. if (process.env.NODE_ENV === "production") {
  45. // config.entry("index").add("babel-polyfill");
  46. config.plugin("html").tap((args) => {
  47. // 加上属性引号
  48. args[0].minify.removeAttributeQuotes = false;
  49. // args[0].cdn = cdns.build;
  50. return args;
  51. });
  52. }
  53. },
  54. };