vue.config.js 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127
  1. const path = require("path");
  2. const TerserPlugin = require("terser-webpack-plugin");
  3. const CssMinimizerPlugin = require("css-minimizer-webpack-plugin");
  4. const WorkboxPlugin = require("workbox-webpack-plugin");
  5. const HappyPack = require("happypack");
  6. const webpack = require("webpack");
  7. // const HtmlWebpackPlugin = require("html-webpack-plugin");
  8. function resolve(dir) {
  9. return path.join(__dirname, dir);
  10. }
  11. module.exports = {
  12. chainWebpack(config) {
  13. config.module.rule("svg").exclude.add(resolve("src/icons")).end();
  14. config.module
  15. .rule("icons")
  16. .test(/\.svg$/)
  17. .include.add(resolve("src/icons"))
  18. .end()
  19. .use("svg-sprite-loader")
  20. .loader("svg-sprite-loader")
  21. .options({
  22. symbolId: "icon-[name]",
  23. })
  24. .end();
  25. config.plugin("happypack").use(HappyPack, [
  26. {
  27. loaders: ["babel-loader"],
  28. },
  29. ]);
  30. // config.plugin('dll').use(webpack.DllPlugin, [
  31. // {
  32. // name: '[name]_library',
  33. // path: path.join(__dirname, 'dll', '[name]-manifest.json'),
  34. // },
  35. // ]);
  36. config.plugin("workbox").use(WorkboxPlugin.GenerateSW, [
  37. {
  38. clientsClaim: true,
  39. skipWaiting: true,
  40. },
  41. ]);
  42. },
  43. css: {
  44. loaderOptions: {
  45. postcss: {
  46. postcssOptions: {
  47. plugins: [require("tailwindcss"), require("autoprefixer")],
  48. },
  49. },
  50. sass: {
  51. additionalData: `
  52. @import "@/styles/global.scss";
  53. `,
  54. },
  55. },
  56. },
  57. devServer: {
  58. // contentBase: path.join(__dirname, "public"),
  59. proxy: {
  60. "/api": {
  61. // target: "http://192.168.5.4:16200", // 石月
  62. // target: "http://192.168.50.235:16200", //内网 开发环境
  63. // target: "http://192.168.5.15:16200",
  64. target: "http://192.168.50.235:16300", //外网 生产环境
  65. // target: "http://10.96.137.5",
  66. changeOrigin: true,
  67. pathRewrite: {
  68. "^/api": "", // 需要regit write重写的,
  69. },
  70. },
  71. "/transDataWeb": {
  72. target: "http://192.168.50.241:9000/trans_data_web",
  73. changeOrigin: true,
  74. pathRewrite: {
  75. "^/transDataWeb": "", // 需要regit write重写的,
  76. },
  77. },
  78. // "/downLoadApi": {
  79. // target: "http://192.168.50.241:8080", //http://192.168.50.241:8080/
  80. // changeOrigin: true,
  81. // pathRewrite: {
  82. // "^/downLoadApi": "", // 需要rewrite重写的,z
  83. // },
  84. // },
  85. },
  86. },
  87. configureWebpack: {
  88. resolve: {
  89. alias: {
  90. "@": resolve("src"),
  91. },
  92. },
  93. optimization: {
  94. usedExports: true,
  95. splitChunks: {
  96. chunks: "all",
  97. },
  98. minimize: true,
  99. minimizer: [new TerserPlugin(), new CssMinimizerPlugin()],
  100. },
  101. // plugins: [
  102. // new HtmlWebpackPlugin({
  103. // filename: "custom-filename.html", // 自定义输出的 HTML 文件名
  104. // title: "风机运行管理系统", // 设置页面的标题
  105. // // 其他配置...
  106. // }),
  107. // // 其他插件...
  108. // ],
  109. },
  110. pluginOptions: {
  111. "style-resources-loader": {
  112. preProcessor: "sass",
  113. patterns: [],
  114. },
  115. },
  116. configureWebpack: {
  117. devtool: "source-map",
  118. },
  119. };