vue.config.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  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: "https://channelpre2.aizhuishu.com",
  13. changeOrigin: true,
  14. },
  15. "/channel/img": {
  16. target: "https://channelpre2.aizhuishu.com",
  17. changeOrigin: true,
  18. },
  19. },
  20. disableHostCheck: true,
  21. },
  22. css: {
  23. sourceMap: false,
  24. loaderOptions: {
  25. scss: {
  26. prependData: `@import "~@/scss/variables.scss";`,
  27. },
  28. less: {
  29. lessOptions: {
  30. modifyVars: {
  31. "primary-color": "#39a4ff",
  32. "link-color": "#39a4ff",
  33. },
  34. javascriptEnabled: true,
  35. },
  36. },
  37. },
  38. },
  39. configureWebpack: {
  40. resolve: {
  41. extensions: [".js", ".vue", ".json", ".ts"],
  42. },
  43. },
  44. chainWebpack: (config) => {
  45. // * 移除prefetch和preload
  46. config.plugins.delete("prefetch");
  47. config.plugins.delete("preload");
  48. if (process.env.NODE_ENV === "production") {
  49. // config.entry("index").add("babel-polyfill");
  50. config.plugin("html").tap((args) => {
  51. // 加上属性引号
  52. args[0].minify.removeAttributeQuotes = false;
  53. // args[0].cdn = cdns.build;
  54. return args;
  55. });
  56. }
  57. },
  58. };