來源:https://www.cnblogs.com/lanshengzhong/p/10386986.html(轉載,個人做個筆記)

- Babel : 將ES6編譯成ES5
- TypeScript: javascript類型的超集
- Progressive Web App (PWA) Support: 支持漸進式的網頁應用程序
- Router:vue-router
- Vuex: 狀態管理
- CSS Pre-processors: CSS預處理
- Linter / Formatter: 開發規范
- Unit Testing: 單元測試
- E2E Testing: 端到端測試
配置文件說明
vue-cli3.0致力於Vue生態中的工具基礎標准化。它確保了各種構建工具能夠基於智能的默認配置即可平穩銜接,這樣你就可以專注在撰寫應用上,減少配置的時間。查看如下文件,會發現相比於vue-cli2.0少了build與config文件夾,所以vue-cli3提供了一個可選的配置文件 ——vue.config.js。

|-- dist # 打包后文件夾 |-- public # 靜態文件夾 | |-- favicon.ico | |-- index.html #入口頁面 |-- src # 源碼目錄 | |--assets # 模塊資源 | |--components # vue公共組件 | |--views | |--App.vue # 頁面入口文件 | |--main.js # 入口文件,加載公共組件 | |--router.js # 路由配置 | |--store.js # 狀態管理 |-- .env.pre-release # 預發布環境 |-- .env.production # 生產環境 |-- .env.test # 測試環境 |-- vue.config.js # 配置文件 |-- .eslintrc.js # ES-lint校驗 |-- .gitignore # git忽略上傳的文件格式 |-- babel.config.js # babel語法編譯 |-- package.json # 項目基本信息 |-- postcss.config.js # CSS預處理器(此處默認啟用autoprefixer)
vue.config.js配置
Vue.config.js是一個可選的配置文件,如果項目的根目錄存在這個文件,那么它就會被 @vue/cli-service 自動加載。你也可以使用package.json中的vue字段,但要注意嚴格遵守JSON的格式來寫。這里使用配置vue.config.js的方式進行處理。
const webpack = require('webpack')
module.exports = {
//部署應用包時的基本 URL
publicPath: process.env.NODE_ENV === 'production' ? '/online/' : './',
//當運行 vue-cli-service build 時生成的生產環境構建文件的目錄
outputDir: 'dist',
//放置生成的靜態資源 (js、css、img、fonts) 的 (相對於 outputDir 的) 目錄
assetsDir: 'assets',
// eslint-loader 是否在保存的時候檢查 安裝@vue/cli-plugin-eslint有效
lintOnSave: true,
//是否使用包含運行時編譯器的 Vue 構建版本。設置true后你就可以在使用template
runtimeCompiler: true,
// 生產環境是否生成 sourceMap 文件 sourceMap的詳解請看末尾
productionSourceMap: true,
configureWebpack: config => {
if (process.env.NODE_ENV === 'production') {
// 為生產環境修改配置...
} else {
// 為開發環境修改配置...
}
},
// css相關配置
css: {
// 是否使用css分離插件 ExtractTextPlugin 生產環境下是true,開發環境下是false
extract: true,
// 開啟 CSS source maps?
sourceMap: false,
// css預設器配置項
loaderOptions: {},
// 啟用 CSS modules for all css / pre-processor files.
modules: false
},
// webpack-dev-server 相關配置
devServer: { // 設置代理
hot: true, //熱加載
host: '0.0.0.0', //ip地址
port: 8085, //端口
https: false, //false關閉https,true為開啟
open: true, //自動打開瀏覽器
proxy: {
'/api': { //本地
target: 'xxx',
// 如果要代理 websockets
ws: true,
changeOrigin: true
},
'/test': { //測試
target: 'xxx'
},
'/pre': { //預發布
target: 'xxx'
},
'/pro': { //正式
target: 'xxx'
}
}
},
pluginOptions: { // 第三方插件配置
// ...
}
}

