vue.config.js常用配置詳解


vue.config.js常用配置詳解_vue.js_腳本之家 (jb51.net)

這篇文章主要介紹了vue.config.js常用配置詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨着小編來一起學習學習吧

使用vue-cli3.0搭建項目比之前更簡潔,沒有了build和config文件夾。

vue-cli3的一些服務配置都遷移到CLI Service里面了,對於一些基礎配置和一些擴展配置需要在根目錄新建一個vue.config.js文件進行配置

 

module.exports = {
 publicPath: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/'
}

  

1 module.exports = {
2  // 選項...
3 }

基本路徑

baseUrl從 Vue CLI 3.3 起已棄用使用publicPath來替代。

在開發環境下,如果想把開發服務器架設在根路徑,可以使用一個條件式的值

1 module.exports = {
2  publicPath: process.env.NODE_ENV === 'production' ? '/production-sub-path/' : '/'
3 }

構建輸出目錄(打包位置)

outputDir

當運行 vue-cli-service build 時生成的生產環境構建文件的目錄

1 module.exports = {
2  outputDir: 'dist',
3 }

靜態資源目錄

assetsDir

放置生成的靜態資源 (js、css、img、fonts) 的目錄

1 module.exports = {
2  assetsDir: 'assets',
3 }

eslint代碼檢測

是否開啟eslint保存檢測,有效值:ture | false | 'error'

設置為 true 時,eslint-loader 會將 lint 錯誤輸出為編譯警告。默認情況下,警告僅僅會被輸出到命令行,且不會使得編譯失敗

希望讓 lint 錯誤在開發時直接顯示在瀏覽器中,可以使用 lintOnSave: 'error'。這會強制 eslint-loader 將 lint 錯誤輸出為編譯錯誤

webpack-dev-server 相關配置

devServer

 1   devServer: {
 2     open: true,//設置自動打開
 3     port: 1880,//設置端口
 4     proxy: {
 5       //設置代理
 6       '/axios': {
 7         target: 'http://101.15.22.98',
 8         changeOrigin: true,
 9         secure: false, //如果是http接口,需要配置該參數
10         pathRewrite: {
11           '^/axios': ''
12           }
13         }
14       }
15     }
16   }
 1 module.exports = {
 2   // 部署應用時的基本 URL
 3   publicPath: process.env.NODE_ENV === 'production' ? '192.168.60.110:8080' : '192.168.60.110:8080',
 4 
 5   // build時構建文件的目錄 構建時傳入 --no-clean 可關閉該行為
 6   outputDir: 'dist',
 7 
 8   // build時放置生成的靜態資源 (js、css、img、fonts) 的 (相對於 outputDir 的) 目錄
 9   assetsDir: '',
10 
11   // 指定生成的 index.html 的輸出路徑 (相對於 outputDir)。也可以是一個絕對路徑。
12   indexPath: 'index.html',
13 
14   // 默認在生成的靜態資源文件名中包含hash以控制緩存
15   filenameHashing: true,
16 
17   // 構建多頁面應用,頁面的配置
18   pages: {
19     index: {
20       // page 的入口
21       entry: 'src/index/main.js',
22       // 模板來源
23       template: 'public/index.html',
24       // 在 dist/index.html 的輸出
25       filename: 'index.html',
26       // 當使用 title 選項時,
27       // template 中的 title 標簽需要是 <title><%= htmlWebpackPlugin.options.title %></title>
28       title: 'Index Page',
29       // 在這個頁面中包含的塊,默認情況下會包含
30       // 提取出來的通用 chunk 和 vendor chunk。
31       chunks: ['chunk-vendors', 'chunk-common', 'index']
32     },
33     // 當使用只有入口的字符串格式時,
34     // 模板會被推導為 `public/subpage.html`
35     // 並且如果找不到的話,就回退到 `public/index.html`。
36     // 輸出文件名會被推導為 `subpage.html`。
37     subpage: 'src/subpage/main.js'
38   },
39 
40   // 是否在開發環境下通過 eslint-loader 在每次保存時 lint 代碼 (在生產構建時禁用 eslint-loader)
41   lintOnSave: process.env.NODE_ENV !== 'production',
42 
43   // 是否使用包含運行時編譯器的 Vue 構建版本
44   runtimeCompiler: false,
45 
46   // Babel 顯式轉譯列表
47   transpileDependencies: [],
48 
49   // 如果你不需要生產環境的 source map,可以將其設置為 false 以加速生產環境構建
50   productionSourceMap: true,
51 
52   // 設置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 標簽的 crossorigin 屬性(注:僅影響構建時注入的標簽)
53   crossorigin: '',
54 
55   // 在生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 標簽上啟用 Subresource Integrity (SRI)
56   integrity: false,
57 
58   // 如果這個值是一個對象,則會通過 webpack-merge 合並到最終的配置中
59   // 如果你需要基於環境有條件地配置行為,或者想要直接修改配置,那就換成一個函數 (該函數會在環境變量被設置之后懶執行)。該方法的第一個參數會收到已經解析好的配置。在函數內,你可以直接修改配置,或者返回一個將會被合並的對象
60   configureWebpack: {},
61 
62   // 對內部的 webpack 配置(比如修改、增加Loader選項)(鏈式操作)
63   chainWebpack: () =>{
64 
65   },
66 
67   // css的處理
68   css: {
69     // 當為true時,css文件名可省略 module 默認為 false
70     modules: true,
71     // 是否將組件中的 CSS 提取至一個獨立的 CSS 文件中,當作為一個庫構建時,你也可以將其設置為 false 免得用戶自己導入 CSS
72     // 默認生產環境下是 true,開發環境下是 false
73     extract: false,
74     // 是否為 CSS 開啟 source map。設置為 true 之后可能會影響構建的性能
75     sourceMap: false,
76     //向 CSS 相關的 loader 傳遞選項(支持 css-loader postcss-loader sass-loader less-loader stylus-loader)
77     loaderOptions: {
78       css: {},
79       less: {}
80     }
81   },
82 
83   // 所有 webpack-dev-server 的選項都支持
84   devServer: {},
85 
86   // 是否為 Babel 或 TypeScript 使用 thread-loader
87   parallel: require('os').cpus().length > 1,
88 
89   // 向 PWA 插件傳遞選項
90   pwa: {},
91 
92   // 可以用來傳遞任何第三方插件選項
93   pluginOptions: {}
94 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM