vue.config.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. const path = require("path");
  2. function resolve(dir) {
  3. return path.join(__dirname, dir);
  4. }
  5. /** @type {import('webpack').Configuration} */
  6. module.exports = {
  7. publicPath: process.env.NODE_ENV === "production" ? "/" : "./",
  8. // 将构建好的文件输出到哪里,本司要求
  9. // outputDir: "dist",
  10. // 放置生成的静态资源(js、css、img、fonts)的目录。
  11. // assetsDir: "static",
  12. // 指定生成的 index.html 的输出路径
  13. indexPath: "index.html",
  14. // 是否使用包含运行时编译器的 Vue 构建版本。
  15. runtimeCompiler: false,
  16. transpileDependencies: [],
  17. // 如果你不需要生产环境的 source map
  18. productionSourceMap: false,
  19. // 配置css
  20. css: {
  21. // 是否使用css分离插件 ExtractTextPlugin
  22. extract: true,
  23. sourceMap: true,
  24. // css预设器配置项
  25. // loaderOptions: {
  26. // postcss: {
  27. // plugins: [
  28. // require("postcss-px2rem")({
  29. // remUnit: 100,
  30. // }),
  31. // ],
  32. // },
  33. // },
  34. // 启用 CSS modules for all css / pre-processor files.
  35. modules: false
  36. },
  37. // 是一个函数,允许对内部的 webpack 配置进行更细粒度的修改。
  38. chainWebpack: config => {
  39. // 配置别名
  40. config.resolve.alias
  41. .set("@", resolve("src"))
  42. .set("@assets", resolve("src/assets"))
  43. .set("@components", resolve("src/components"))
  44. .set("@views", resolve("src/views"));
  45. config.optimization.minimizer("terser").tap(args => {
  46. // 去除生产环境console
  47. args[0].terserOptions.compress.drop_console = true;
  48. return args;
  49. });
  50. config.module
  51. .rule("mjs")
  52. .test(/\.mjs$/)
  53. .type("javascript/auto")
  54. .include.add(/node_modules/)
  55. .end();
  56. },
  57. // 是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用,仅作用于生产构建。
  58. parallel: require("os").cpus().length > 1,
  59. pwa: {
  60. iconPaths: {}
  61. },
  62. devServer: {
  63. host: "0.0.0.0",
  64. port: 9090, // 端口号
  65. disableHostCheck: true,
  66. // 配置多个代理
  67. proxy: {
  68. "/api": {
  69. target: process.env.VUE_APP_BASE_URL,
  70. ws: true, // 代理的WebSockets
  71. changeOrigin: true, // 允许websockets跨域
  72. pathRewrite: {
  73. "^/api": ""
  74. }
  75. }
  76. }
  77. }
  78. };