新聞中心
這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)VueCLI教程:VueCLIvue.config.js配置參考
全局 CLI 配置
有些針對 @Vue/cli 的全局配置,例如你慣用的包管理器和你本地保存的 preset,都保存在 home 目錄下一個名叫 .vuerc 的 JSON 文件。你可以用編輯器直接編輯這個文件來更改已保存的選項。

你也可以使用 vue config 命令來審查或修改全局的 CLI 配置。
目標瀏覽器
請查閱指南中的瀏覽器兼容性章節(jié)。
vue.config.js
vue.config.js 是一個可選的配置文件,如果項目的 (和 package.json 同級的) 根目錄中存在這個文件,那么它會被 @vue/cli-service 自動加載。你也可以使用 package.json 中的 vue 字段,但是注意這種寫法需要你嚴格遵照 JSON 的格式來寫。
這個文件應該導出一個包含了選項的對象:
// vue.config.js
module.exports = {
// 選項...
}
baseUrl
從 Vue CLI 3.3 起已棄用,請使用publicPath。
publicPath
- Type: string
- Default: '/'
- 部署應用包時的基本 URL。用法和 webpack 本身的 output.publicPath 一致,但是 Vue CLI 在一些其他地方也需要用到這個值,所以請始終使用 publicPath 而不要直接修改 webpack 的 output.publicPath。默認情況下,Vue CLI 會假設你的應用是被部署在一個域名的根路徑上,例如 https://www.my-app.com/。如果應用被部署在一個子路徑上,你就需要用這個選項指定這個子路徑。例如,如果你的應用被部署在 https://www.my-app.com/my-app/,則設置 publicPath 為 /my-app/。這個值也可以被設置為空字符串 ('') 或是相對路徑 ('./'),這樣所有的資源都會被鏈接為相對路徑,這樣打出來的包可以被部署在任意路徑,也可以用在類似 Cordova hybrid 應用的文件系統(tǒng)中。相對 publicPath 的限制相對路徑的 publicPath 有一些使用上的限制。在以下情況下,應當避免使用相對 publicPath:當使用基于 HTML5 history.pushState 的路由時;當使用 pages 選項構建多頁面應用時。這個值在開發(fā)環(huán)境下同樣生效。如果你想把開發(fā)服務器架設在根路徑,你可以使用一個條件式的值:module.exports = { publicPath: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/' }
outputDir
- Type: string
- Default: 'dist'
- 當運行 vue-cli-service build 時生成的生產環(huán)境構建文件的目錄。注意目標目錄在構建之前會被清除 (構建時傳入 --no-clean 可關閉該行為)。提示請始終使用 outputDir 而不要修改 webpack 的 output.path。
assetsDir
- Type: string
- Default: ''
- 放置生成的靜態(tài)資源 (js、css、img、fonts) 的 (相對于 outputDir 的) 目錄。提示從生成的資源覆寫 filename 或 chunkFilename 時,assetsDir 會被忽略。
indexPath
- Type: string
- Default: 'index.html'
- 指定生成的 index.html 的輸出路徑 (相對于 outputDir)。也可以是一個絕對路徑。
filenameHashing
- Type: boolean
- Default: true
- 默認情況下,生成的靜態(tài)資源在它們的文件名中包含了 hash 以便更好的控制緩存。然而,這也要求 index 的 HTML 是被 Vue CLI 自動生成的。如果你無法使用 Vue CLI 生成的 index HTML,你可以通過將這個選項設為 false 來關閉文件名哈希。
pages
- Type: Object
- Default: undefined
- 在 multi-page 模式下構建應用。每個“page”應該有一個對應的 JavaScript 入口文件。其值應該是一個對象,對象的 key 是入口的名字,value 是:一個指定了 entry, template, filename, title 和 chunks 的對象 (除了 entry 之外都是可選的);或一個指定其 entry 的字符串。
-
module.exports = { pages: { index: { // page 的入口 entry: 'src/index/main.js', // 模板來源 template: 'public/index.html', // 在 dist/index.html 的輸出 filename: 'index.html', // 當使用 title 選項時, // template 中的 title 標簽需要是<%= htmlWebpackPlugin.options.title %> title: 'Index Page', // 在這個頁面中包含的塊,默認情況下會包含 // 提取出來的通用 chunk 和 vendor chunk。 chunks: ['chunk-vendors', 'chunk-common', 'index'] }, // 當使用只有入口的字符串格式時, // 模板會被推導為 `public/subpage.html` // 并且如果找不到的話,就回退到 `public/index.html`。 // 輸出文件名會被推導為 `subpage.html`。 subpage: 'src/subpage/main.js' } } - 提示當在 multi-page 模式下構建時,webpack 配置會包含不一樣的插件 (這時會存在多個 html-webpack-plugin 和 preload-webpack-plugin 的實例)。如果你試圖修改這些插件的選項,請確認運行 vue inspect。
lintOnSave
- Type: boolean | 'warning' | 'default' | 'error'
- Default: true
- 是否在開發(fā)環(huán)境下通過 eslint-loader 在每次保存時 lint 代碼。這個值會在 @vue/cli-plugin-eslint 被安裝之后生效。設置為 true 或 'warning' 時,eslint-loader 會將 lint 錯誤輸出為編譯警告。默認情況下,警告僅僅會被輸出到命令行,且不會使得編譯失敗。如果你希望讓 lint 錯誤在開發(fā)時直接顯示在瀏覽器中,你可以使用 lintOnSave: 'error'。這會強制 eslint-loader 將 lint 錯誤輸出為編譯錯誤,同時也意味著 lint 錯誤將會導致編譯失敗。或者,你也可以通過設置讓瀏覽器 overlay 同時顯示警告和錯誤:// vue.config.js module.exports = { devServer: { overlay: { warnings: true, errors: true } } } 當 lintOnSave 是一個 truthy 的值時,eslint-loader 在開發(fā)和生產構建下都會被啟用。如果你想要在生產構建時禁用 eslint-loader,你可以用如下配置:// vue.config.js module.exports = { lintOnSave: process.env.NODE_ENV !== 'production' }
runtimeCompiler
- Type: boolean
- Default: false
- 是否使用包含運行時編譯器的 Vue 構建版本。設置為 true 后你就可以在 Vue 組件中使用 template 選項了,但是這會讓你的應用額外增加 10kb 左右。更多細節(jié)可查閱:Runtime + Compiler vs. Runtime only。
transpileDependencies
- Type: Array
- Default: []
- 默認情況下 babel-loader 會忽略所有 node_modules 中的文件。如果你想要通過 Babel 顯式轉譯一個依賴,可以在這個選項中列出來。
productionSourceMap
- Type: boolean
- Default: true
- 如果你不需要生產環(huán)境的 source map,可以將其設置為 false 以加速生產環(huán)境構建。
crossorigin
- Type: string
- Default: undefined
- 設置生成的 HTML 中 和


咨詢
建站咨詢