我們在根目錄下創建一個 vue.config.js 文件,將下方配置下去
module.exports = {
/** 區分打包環境與開發環境
* process.env.NODE_ENV==='production' (打包環境)
* process.env.NODE_ENV==='development' (開發環境)
* baseUrl: process.env.NODE_ENV==='production'?"https://cdn.didabisai.com/front/":'front/',
*/
// 基本路徑
baseUrl: '/',
// 輸出文件目錄
outputDir: 'dist',
// eslint-loader 是否在保存的時候檢查
// lintOnSave: true,
// use the full build with in-browser compiler?
// https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
//compiler: false,
// webpack配置
// see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
chainWebpack: () => { },
configureWebpack: () => { },
//如果想要引入babel-polyfill可以這樣寫
// configureWebpack: (config) => {
// config.entry = ["babel-polyfill", "./src/main.js"]
// },
// vue-loader 配置項
// https://vue-loader.vuejs.org/en/options.html
//vueLoader: {},
// 生產環境是否生成 sourceMap 文件
// productionSourceMap: true,
// css相關配置
//css: {
// 是否使用css分離插件 ExtractTextPlugin
// extract: true,
// 開啟 CSS source maps?
// sourceMap: false,
// css預設器配置項
// loaderOptions: {},
// 啟用 CSS modules for all css / pre-processor files.
// modules: false
// },
// use thread-loader for babel & TS in production build
// enabled by default if the machine has more than 1 cores
//parallel: require('os').cpus().length > 1,
// 是否啟用dll
// See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#dll-mode
// dll: false,
// PWA 插件相關配置
// see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
// pwa: {},
// webpack-dev-server 相關配置
devServer: {
open: process.platform === 'darwin',
host: '127.0.0.1',
port: 9099,
https: false,
hotOnly: false,
proxy: null, // 設置代理
before: app => { }
},
// 第三方插件配置
pluginOptions: {
// ...
}
}
相對來說的配置文件,可以看下面的內容
const path = require('path');
const debug = process.env.NODE_ENV !== 'production'
module.exports = {
baseUrl: '/', // 根域上下文目錄
outputDir: 'dist', // 構建輸出目錄
assetsDir: 'assets', // 靜態資源目錄 (js, css, img, fonts)
lintOnSave: false, // 是否開啟eslint保存檢測,有效值:ture | false | 'error'
runtimeCompiler: true, // 運行時版本是否需要編譯
transpileDependencies: [], // 默認babel-loader忽略mode_modules,這里可增加例外的依賴包名
productionSourceMap: true, // 是否在構建生產包時生成 sourceMap 文件,false將提高構建速度
configureWebpack: config => { // webpack配置,值位對象時會合並配置,為方法時會改寫配置
if (debug) { // 開發環境配置
config.devtool = 'cheap-module-eval-source-map'
} else { // 生產環境配置
}
// Object.assign(config, { // 開發生產共同配置
// resolve: {
// alias: {
// '@': path.resolve(__dirname, './src'),
// '@c': path.resolve(__dirname, './src/components'),
// 'vue$': 'vue/dist/vue.esm.js'
// }
// }
// })
},
chainWebpack: config => { // webpack鏈接API,用於生成和修改webapck配置,https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
if (debug) {
// 本地開發配置
} else {
// 生產開發配置
}
},
parallel: require('os').cpus().length > 1, // 構建時開啟多進程處理babel編譯
pluginOptions: { // 第三方插件配置
},
pwa: { // 單頁插件相關配置 https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa
},
devServer: {
open: false, // 啟動服務自定打開瀏覽器
host: 'localhost', // 本地主機命,可以是127.0.0.1 | localhost
port: '8080', // 端口好設置
https: false, // 開啟https,會開啟驗證。默認false
hotOnly: false, // 熱更新操作,webpack 已經有了
proxy: {
// 配置跨域
'/api': {
target: 'http://localhost:5000/api',
ws: true, // 跨越
changeOrigin: true, // 開啟代理
pathRewrite: {
'^/api': ''
}
}
},
before: app => {
}
}
}
