vue.config.js 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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: "./", // 默认为'/'
  8. // 将构建好的文件输出到哪里,本司要求
  9. outputDir: "dist/static",
  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. },
  51. // 是否为 Babel 或 TypeScript 使用 thread-loader。该选项在系统的 CPU 有多于一个内核时自动启用,仅作用于生产构建。
  52. parallel: require("os").cpus().length > 1,
  53. devServer: {
  54. host: "0.0.0.0",
  55. port: 9090, // 端口号
  56. disableHostCheck: true,
  57. // 配置多个代理
  58. // proxy: {
  59. // "/api": {
  60. // target: "https://www.mock.com",
  61. // ws: true, // 代理的WebSockets
  62. // changeOrigin: true, // 允许websockets跨域
  63. // pathRewrite: {
  64. // "^/api": "",
  65. // },
  66. // },
  67. // },
  68. },
  69. };