const webpack = require('webpack') module.exports = { /* 部署生产环境和开发环境下的URL:可对当前环境进行区分,baseUrl 从 Vue CLI 3.3 起已弃用,要使用publicPath */ /* baseUrl: process.env.NODE_ENV === 'production' ? './' : '/' */ publicPath: './', /* 代码保存时进行eslint检测 */ lintOnSave: false, /* 输出文件目录:在npm run build时,生成文件的目录名称 */ outputDir: 'dist', /* 放置生成的静态资源 (js、css、img、fonts) 的 (相对于 outputDir 的) 目录 */ assetsDir: "assets", /* 是否在构建生产包时生成 sourceMap 文件,false将提高构建速度 */ productionSourceMap: false, /* 默认情况下,生成的静态资源在它们的文件名中包含了 hash 以便更好的控制缓存,你可以通过将这个选项设为 false 来关闭文件名哈希。(false的时候就是让原来的文件名不改变) */ filenameHashing: false, //兼容ES6 // configureWebpack: config => { // config.entry.app = ['babel-polyfill','./src/main.ts']; // }, configureWebpack: { plugins: [ new webpack.ProvidePlugin({ 'window.Quill': 'quill/dist/quill.js', 'Quill': 'quill/dist/quill.js' }), ] }, pwa: { iconPaths: { favicon32: 'favicon.ico', favicon16: 'favicon.ico', appleTouchIcon: 'favicon.ico', maskIcon: 'favicon.ico', msTileImage: 'favicon.ico' } }, /* webpack-dev-server 相关配置 */ devServer: { /* 自动打开浏览器 */ open: true, /* 设置为0.0.0.0则所有的地址均能访问 */ host: '0.0.0.0', port: 8066, https: false, overlay: { warnings: false, errors: false }, hotOnly: false, /* 使用代理 */ proxy: { '/api': { /* 目标代理服务器地址 */ target: 'http://121.36.79.12:8085', /* 允许跨域 */ changeOrigin: true, // 如果要代理 websockets // ws: true, // 将主机标头的原点更改为目标URL changeOrigin: true, pathRewrite: { '^/api': '' }, // onProxyRes(proxyRes, req, res) { // var cookies = proxyRes.headers['set-cookie'] // if (cookies == null || cookies.length == 0) { // delete proxyRes.headers['set-cookie'] // return // } // for (var i = 0,n = cookies.length; i < n; i++) { // if(cookies[i].match(/^JSESSIONID=[^;]+;[\s\S]*Path=\/[^;]+/)){ // cookies[i] = cookies[i].replace(/Path=\/[^;]+/,'Path=/'); // } // } // proxyRes.headers['set-cookie'] = cookies; // } }, }, }, transpileDependencies: ['webpack-dev-server/client'], chainWebpack: config => { config.entry.app = ['babel-polyfill', './src/main.js']; // 一个规则里的 基础Loader // svg是个基础loader const svgRule = config.module.rule('svg') // 清除已有的所有 loader。 // 如果你不这样做,接下来的 loader 会附加在该规则现有的 loader 之后。 svgRule.uses.clear() // 添加要替换的 loader svgRule .use('svg-sprite-loader') .loader('svg-sprite-loader') .options({ symbolId: 'icon-[name]' }) } }