转自:https://www.yuque.com/dukang-hfttn/mo27v1/flcggg
const path = require('path')const resolve = dir => path.join(__dirname, dir)console.log('=======开始编译=======')// 在发送请求之前重写路径// '/api': {// target: 'http://api.xxxxx.com',// ws: true,// changOrigin: true,// pathRewrite: {// '^/api': ''// }// }module.exports = {// 基本路径baseUrl: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/',// 它支持webPack-dev-server的所有选项devServer: {open: true, // 自动打开浏览器host: 'vue.xxxxx.com', // 配置启动域名或IPport: 80, // 端口号https: false, // 是否开启HTTPShotOnly: false,// 设置代理proxy: {'/api': {target: 'http://api.xxxxx.com',ws: true,changOrigin: true}},before: app => {}},// 构建输出目录outputDir: 'dist',// 静态资源目录 (js, css, img, fonts)assetsDir: 'assets',// 是否开启eslint保存检测,有效值:ture | false | 'error'lintOnSave: true,// 运行时版本是否需要编译runtimeCompiler: true,// 默认babel-loader忽略mode_modules,这里可增加例外的依赖包名transpileDependencies: [],/*** 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。* 打包之后发现map文件过大,项目文件体积很大,设置为false就可以不输出map文件* map文件的作用在于:项目打包后,代码都是经过压缩加密的,如果运行时报错,输出的错误信息无法准确得知是哪里的代码报错。* 有了map就可以像未加密的代码一样,准确的输出是哪一行哪一列有错。* */productionSourceMap: true,// webpack配置,值位对象时会合并配置,为方法时会改写配置configureWebpack: config => {},/*** webpack链接API,用于生成和修改webapck配置* 配置路径别名* @Author 杜康* @DateTime 2018-09-20T15:28:18+0800* @copyright Copyright©杜康* @version [version]* @param {[type]} config [description]* @return {[type]} [description]*/chainWebpack: config => {config.resolve.alias.set('@', resolve('src')).set('assets', resolve('src/assets')).set('router', resolve('src/router')).set('store', resolve('src/store')).set('components', resolve('src/components')).set('views', resolve('src/views')).set('utils', resolve('src/utils')).set('api', resolve('src/api')).set('styles', resolve('src/styles')).set('menus', resolve('src/menus'))},// 配置高于chainWebpack中关于css loader的配置css: {/*** 是否开启支持‘foo.module.css’样式* 建议关闭,开启后会报ElementUI组件找不到的问题* @type {Boolean}*/modules: false,/*** 是否使用css分离插件* ExtractTextPlugin,采用独立样式文件载入,* 不采用<style>方式内联至html文件中* @type {Boolean}*/extract: true,// 是否在构建样式地图,false将提高构建速度sourceMap: false,// css预设器配置项loaderOptions: {css: {localIdentName: '[name]',camelCase: 'only'},stylus: {}}},// 构建时开启多进程处理babel编译parallel: require('os').cpus().length > 1,// 第三方插件配置pluginOptions: {},// 单页插件相关配置 https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwapwa: {}}
