來源: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: { // 第三方插件配置 // ... } }