1 const path = require('path');
2 module.exports = {
3 // 基本路径
4 publicPath: process.env.NODE_ENV === 'production' ? '' : './',
5 // 输出文件目录
6 outputDir: process.env.NODE_ENV === 'production' ? 'dist' : 'devdist',
7 // eslint-loader 是否在保存的时候检查
8 lintOnSave: false,
9 /** vue3.0内置了webpack所有东西,
10 * webpack配置,see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
11 **/
12 chainWebpack: (config) => {
13 const svgRule = config.module.rule("svg");
14 svgRule.uses.clear();
15 svgRule
16 .use("svg-sprite-loader")
17 .loader("svg-sprite-loader")
18 .options({
19 symbolId: "icon-[name]",
20 include: ["./src/icons"]
21 });
22 },
23 configureWebpack: (config) => {
24 config.resolve = { // 配置解析别名
25 extensions: ['.js', '.json', '.vue'], // 自动添加文件名后缀
26 alias: {
27 'vue': 'vue/dist/vue.js',
28 '@': path.resolve(__dirname, './src'),
29 '@c': path.resolve(__dirname, './src/components')
30 }
31 }
32 },
33 // 生产环境是否生成 sourceMap 文件
34 productionSourceMap: false,
35 // css相关配置
36 css: {
37 // 是否使用css分离插件 ExtractTextPlugin
38 extract: true,
39 // 开启 CSS source maps?
40 sourceMap: false,
41 // css预设器配置项
42 loaderOptions: {
43 scss: {
44 prependData: `@import "./src/styles/main.scss";`
45 }
46 },
47 // requireModuleExtension: false
48 // 启用 CSS modules for all css / pre-processor files.
49 // modules: false
50 },
51 // use thread-loader for babel & TS in production build
52 // enabled by default if the machine has more than 1 cores
53 parallel: require('os').cpus().length > 1,
54 /**
55 * PWA 插件相关配置,see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
56 */
57 pwa: {},
58 // webpack-dev-server 相关配置
59 devServer: {
60 open: false, // 编译完成是否打开网页
61 host: '0.0.0.0', // 指定使用地址,默认localhost,0.0.0.0代表可以被外界访问
62 port: 8080, // 访问端口
63 https: false, // 编译失败时刷新页面
64 hot: true, // 开启热加载
65 hotOnly: false,
66 proxy: {
67 "/devApi": {
68 target: "http://www.web-jshtml.cn/productapi/token", //API服务器的地址
69 changeOrigin: true,
70 pathRewrite: {
71 "^/devApi": ''
72 }
73 }
74 }
75 },
76 /**
77 * 第三方插件配置
78 */
79 pluginOptions: {}
80 }