欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue前端vue.config.js簡(jiǎn)介

 更新時(shí)間:2023年01月09日 16:19:34   作者:難自拔于世界之大  
vue.config.js?是一個(gè)可選的配置文件,如果項(xiàng)目的?(和?package.json?同級(jí)的)?根目錄中存在這個(gè)文件,那么它會(huì)被?@vue/cli-service?自動(dòng)加載,本文重點(diǎn)介紹VUE前端vue.config.js簡(jiǎn)介,感興趣的朋友跟隨小編一起看看吧

vue.config.js

vue項(xiàng)目的配置文件,需要嚴(yán)格遵照 JSON 的格式來(lái)寫。結(jié)構(gòu)如下:

module.exports = {
  // 選項(xiàng)...
}

publicPath

部署應(yīng)用包時(shí)的基本 URL。例如 https://www.my-app.com/,則publicPath
則為“/”,如果應(yīng)用被部署在 https://www.my-app.com/my-app/,則設(shè)置 publicPath 為 /my-app/。

outputDir

當(dāng)運(yùn)行 vue-cli-service build 時(shí)生成的生產(chǎn)環(huán)境構(gòu)建文件的目錄。注意目標(biāo)目錄的內(nèi)容在構(gòu)建之前會(huì)被清除 (構(gòu)建時(shí)傳入 --no-clean 可關(guān)閉該行為)。

assetsDir

放置生成的靜態(tài)資源 (js、css、img、fonts) 的 (相對(duì)于 outputDir 的) 目錄。

devServer

在開發(fā)環(huán)境下API 請(qǐng)求的代理到 API 服務(wù)器。這個(gè)問(wèn)題可以通過(guò) vue.config.js 中的 devServer.proxy 選項(xiàng)來(lái)配置。生產(chǎn)環(huán)境一般由Nginx負(fù)責(zé)。

process.env.VUE_APP_BASE_API

由于我們的項(xiàng)目需要在不同環(huán)境下進(jìn)行運(yùn)行(開發(fā),生產(chǎn),測(cè)試等),這避免我們需要多次的去切換請(qǐng)求的地址以及相關(guān)的配置,vue-cli2是可以直接在config文件中進(jìn)行配置的,但是vue-cli4和vue-cli3已經(jīng)簡(jiǎn)化了,沒(méi)有config文件怎么辦?

建立.env系列文件
首先我們?cè)诟夸浶陆?個(gè)文件,分別為.env.development,.env.production,.env.test
注意文件是只有后綴的。

.env.development 模式用于serve,開發(fā)環(huán)境,就是開始環(huán)境的時(shí)候會(huì)引用這個(gè)文件里面的配置

.env.production模式用于build,線上環(huán)境。

.env.test 測(cè)試環(huán)境

PS:vue.config.js詳解

vue.config.js 是一個(gè)可選的配置文件,如果項(xiàng)目的 (和 package.json 同級(jí)的) 根目錄中存在這個(gè)文件,那么它會(huì)被 @vue/cli-service 自動(dòng)加載。你也可以使用 package.json 中的 vue 字段,但是注意這種寫法需要你嚴(yán)格遵照 JSON 的格式來(lái)寫。

這個(gè)文件應(yīng)該導(dǎo)出一個(gè)包含了選項(xiàng)的對(duì)象:

// vue.config.js
module.exports = {
	//默認(rèn)情況下,Vue CLI 會(huì)假設(shè)你的應(yīng)用是被部署在一個(gè)域名的根路徑上,例如 https://www.my-app.com/。如果應(yīng)用被部署在一個(gè)子路徑上,你就需要用這個(gè)選項(xiàng)指定這個(gè)子路徑。例如,如果你的應(yīng)用被部署在 https://www.my-app.com/my-app/,則設(shè)置 publicPath 為 /my-app/。
	//這個(gè)值也可以被設(shè)置為空字符串 ('') 或是相對(duì)路徑 ('./')
	publicPath: './',
	outputDir:"dist",//當(dāng)運(yùn)行 vue-cli-service build 時(shí)生成的生產(chǎn)環(huán)境構(gòu)建文件的目錄名字  默認(rèn)為"dist"
	assetsDir: './static',//當(dāng)運(yùn)行 vue-cli-service build 時(shí)生成的生成的靜態(tài)資源 (js、css、img、fonts) 的 (相對(duì)于 outputDir 的) 目錄  默認(rèn)為"",默認(rèn)與生成的index.html同級(jí)
	indexPath:"index.html",//npm run build之后生成的入口文件 默認(rèn)為index.html,此屬性可以省略,省略了默認(rèn)就是index.html
	filenameHashing:true,//默認(rèn)情況下,生成的靜態(tài)資源在它們的文件名中包含了 hash 以便更好的控制緩存。然而,這也要求 index 的 HTML 是被 Vue CLI 自動(dòng)生成的。如果你無(wú)法使用 Vue CLI 生成的 index HTML,你可以通過(guò)將這個(gè)選項(xiàng)設(shè)為 false 來(lái)關(guān)閉文件名哈希。
	 pages: {
	   index: {
	     // page 的入口
	     entry: 'src/index/main.js',
	     // 模板來(lái)源
	     template: 'public/index.html',
	     // 在 dist/index.html 的輸出
	     filename: 'index.html',
	     // 當(dāng)使用 title 選項(xiàng)時(shí),
	     // template 中的 title 標(biāo)簽需要是 <title><%= htmlWebpackPlugin.options.title %></title>
	     title: 'Index Page',
	     // 在這個(gè)頁(yè)面中包含的塊,默認(rèn)情況下會(huì)包含
	     // 提取出來(lái)的通用 chunk 和 vendor chunk。
	     chunks: ['chunk-vendors', 'chunk-common', 'index']
	   },
	   // 當(dāng)使用只有入口的字符串格式時(shí),
	   // 模板會(huì)被推導(dǎo)為 `public/subpage.html`
	   // 并且如果找不到的話,就回退到 `public/index.html`。
	   // 輸出文件名會(huì)被推導(dǎo)為 `subpage.html`。
	   subpage: 'src/subpage/main.js'
	 },
	
	//lintOnSave:
	//1.是否在開發(fā)環(huán)境下通過(guò) eslint-loader 在每次保存時(shí) lint 代碼。這個(gè)值會(huì)在 @vue/cli-plugin-eslint 被安裝之后生效。
	//2.設(shè)置為 true 時(shí),eslint-loader 會(huì)將 lint 錯(cuò)誤輸出為編譯警告。默認(rèn)情況下,警告僅僅會(huì)被輸出到命令行,且不會(huì)使得編譯失敗。
	//3.如果你希望讓 lint 錯(cuò)誤在開發(fā)時(shí)直接顯示在瀏覽器中,你可以使用 lintOnSave: 'error'。這會(huì)強(qiáng)制 eslint-loader 將 lint 錯(cuò)誤輸出為編譯錯(cuò)誤,同時(shí)也意味著 lint 錯(cuò)誤將會(huì)導(dǎo)致編譯失敗。
	//4.或者,你也可以通過(guò)設(shè)置讓瀏覽器 overlay 同時(shí)顯示警告和錯(cuò)誤:
	//module.exports = {
	  //devServer: {
	    //overlay: {
	    //  warnings: true,
	    //  errors: true
	    //}
	  //}
	//}
	lintOnSave:true,
	runtimeCompiler:false,//是否使用包含運(yùn)行時(shí)編譯器的 Vue 構(gòu)建版本。設(shè)置為 true 后你就可以在 Vue 組件中使用 template 選項(xiàng)了,但是這會(huì)讓你的應(yīng)用額外增加 10kb 左右。
	transpileDependencies:[],//默認(rèn)情況下 babel-loader 會(huì)忽略所有 node_modules 中的文件。如果你想要通過(guò) Babel 顯式轉(zhuǎn)譯一個(gè)依賴,可以在這個(gè)選項(xiàng)中列出來(lái)。
	productionSourceMap:true,//如果你不需要生產(chǎn)環(huán)境的 source map,可以將其設(shè)置為 false 以加速生產(chǎn)環(huán)境構(gòu)建   這玩意設(shè)置成false之后,能把打包后的文件大小減小80%   當(dāng)時(shí)我的項(xiàng)目大小是8m+  設(shè)成false之后變成了2m+     productionSourceMap:false,之后,就不會(huì)生成map文件,map文件的作用在于:項(xiàng)目打包后,代碼都是經(jīng)過(guò)壓縮加密的,如果運(yùn)行時(shí)報(bào)錯(cuò),輸出的錯(cuò)誤信息無(wú)法準(zhǔn)確得知是哪里的代碼報(bào)錯(cuò)。也就是說(shuō)map文件相當(dāng)于是查看源碼的一個(gè)東西。如果不需要定位問(wèn)題,并且不想被看到源碼,就把productionSourceMap 置為false,既可以減少包大小,也可以加密源碼。
	crossorigin:"undefined",//設(shè)置生成的 HTML 中 <link rel="stylesheet"> 和 <script> 標(biāo)簽的 crossorigin 屬性。需要注意的是該選項(xiàng)僅影響由 html-webpack-plugin 在構(gòu)建時(shí)注入的標(biāo)簽 - 直接寫在模版 (public/index.html) 中的標(biāo)簽不受影響。
	integrity:false,//在生成的 HTML 中的 <link rel="stylesheet"> 和 <script> 標(biāo)簽上啟用 Subresource Integrity (SRI)。如果你構(gòu)建后的文件是部署在 CDN 上的,啟用該選項(xiàng)可以提供額外的安全性。需要注意的是該選項(xiàng)僅影響由 html-webpack-plugin 在構(gòu)建時(shí)注入的標(biāo)簽 - 直接寫在模版 (public/index.html) 中的標(biāo)簽不受影響。另外,當(dāng)啟用 SRI 時(shí),preload resource hints 會(huì)被禁用,因?yàn)?Chrome 的一個(gè) bug 會(huì)導(dǎo)致文件被下載兩次。
	configureWebpack:Object | Function,//下面舉個(gè)例子:
	configureWebpack: config => {
        if (process.env.NODE_ENV === "production") {
            // 為生產(chǎn)環(huán)境修改配置...
            config.mode = "production";
            // 這里修改下 
			config.optimization.minimizer = [
				new UglifyJsPlugin({
					uglifyOptions: {
						compress: {
							warnings: false,
							drop_console: true, //console
							drop_debugger: true,
							pure_funcs: ['console.log'] //移除console
						}
					}
				})
			]
			//打包文件大小配置
			config["performance"] = {
				"maxEntrypointSize":10000000,
				"maxAssetSize":30000000
			}
        } else {
            // 為開發(fā)環(huán)境修改配置...
            config.mode = "development";
        }
 	},
//上面是統(tǒng)一使用configureWebpack的函數(shù)模式,然后函數(shù)模式里面默認(rèn)會(huì)有一個(gè)config參數(shù),需要增加或者修改configureWebpack對(duì)應(yīng)的參數(shù),就直接使用config去修改就可以了!
//我這里使用了兩個(gè)功能,第一個(gè)是打包build的時(shí)候去掉console的調(diào)試信息,第二個(gè)就是修改打包靜態(tài)資源文件大小設(shè)置的配置
	chainWebpack:function,//是一個(gè)函數(shù),會(huì)接收一個(gè)基于 webpack-chain 的 ChainableConfig 實(shí)例。允許對(duì)內(nèi)部的 webpack 配置進(jìn)行更細(xì)粒度的修改。下面舉個(gè)例子
  	chainWebpack: config => {
	  config.resolve.alias
	    .set('@', resolve('src'))//設(shè)置@快捷到src目錄
	    .set('view', resolve('src/view'))//設(shè)置view快捷指定到src/view目錄
	    .set('$css',resolve('/static/css'))
	    .set('$common',resolve('/components'))
	    .set('$api',resolve('/api'))
	    .set('$page',resolve('/pages'))
	    .set('$js',resolve('/static/js'));
	    // 刪除預(yù)加載
	  config.plugins.delete('preload')
	  config.plugins.delete('prefetch')
	    // 壓縮代碼
	  config.optimization.minimize(true)
	    // 分割代碼
	  config.optimization.splitChunks({
	      chunks: 'all'
	  })
  	},
  	css:{
		modules:false,//默認(rèn)情況下,只有 *.module.[ext] 結(jié)尾的文件才會(huì)被視作 CSS Modules 模塊。設(shè)置為 true 后你就可以去掉文件名中的 .module 并將所有的 *.(css|scss|sass|less|styl(us)?) 文件視為 CSS Modules 模塊。
		extract:true,//Default: 生產(chǎn)環(huán)境下是 true,開發(fā)環(huán)境下是 false  是否將組件中的 CSS 提取至一個(gè)獨(dú)立的 CSS 文件中 (而不是動(dòng)態(tài)注入到 JavaScript 中的 inline 代碼)。
		sourceMap:false,//是否為 CSS 開啟 source map。設(shè)置為 true 之后可能會(huì)影響構(gòu)建的性能。
		loaderOptions:{},//向 CSS 相關(guān)的 loader 傳遞選項(xiàng)。例如:
	  },
	  devServer:{
	  	proxy:'http://localhost:8080',//如果你的前端應(yīng)用和后端 API 服務(wù)器沒(méi)有運(yùn)行在同一個(gè)主機(jī)上,你需要在開發(fā)環(huán)境下將 API 請(qǐng)求代理到 API 服務(wù)器。這個(gè)問(wèn)題可以通過(guò) vue.config.js 中的 devServer.proxy 選項(xiàng)來(lái)配置。http://localhost:8080這會(huì)告訴開發(fā)服務(wù)器將任何未知請(qǐng)求 (沒(méi)有匹配到靜態(tài)文件的請(qǐng)求) 代理到http://localhost:4000   如果你想要更多的代理控制行為,也可以使用一個(gè) path: options 成對(duì)的對(duì)象。完整的選項(xiàng)可以查閱 http-proxy-middleware 。
	    proxy: {
	      '/rng': {
	        target: '<url>',// 后臺(tái)接口域名
	         secure: false,  // 如果是https接口,需要配置這個(gè)參數(shù)
	        ws: true,//如果要代理 websockets,配置這個(gè)參數(shù)
	        changeOrigin: true//是否跨域
			//我的 api='/rng'我的請(qǐng)求地址  ${api}/xxxx/xxx ,請(qǐng)求地址就為 '/rng/xxxx/xxx'當(dāng)node服務(wù)器 遇到 以 '/rng' 開頭的請(qǐng)求,就會(huì)把 target 字段加上,那么我的請(qǐng)求地址就為 http://45.105.124.130:8081/rng/xxxx/xxx
	      },
	      '/foo': {
	        target: '<other_url>'
	      }
	     }
	  },
	  parallel:'boolean',//是否為 Babel 或 TypeScript 使用 thread-loader。該選項(xiàng)在系統(tǒng)的 CPU 有多于一個(gè)內(nèi)核時(shí)自動(dòng)啟用,僅作用于生產(chǎn)構(gòu)建。
  	pluginOptions:{
  	//less全局變量引用
	    'style-resources-loader': {
	      preProcessor: 'less',
	      patterns: [
	      	path.resolve(__dirname, './src/assets/varibles.less'),
	      ]
	    }
  	},
},

到此這篇關(guān)于VUE前端vue.config.js簡(jiǎn)介的文章就介紹到這了,更多相關(guān)vue.config.js簡(jiǎn)介內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue之Axios的異步通信詳解

    Vue之Axios的異步通信詳解

    這篇文章主要為大家詳細(xì)介紹了Vue之Axios的異步通信,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助
    2022-03-03
  • element-ui vue input輸入框自動(dòng)獲取焦點(diǎn)聚焦方式

    element-ui vue input輸入框自動(dòng)獲取焦點(diǎn)聚焦方式

    這篇文章主要介紹了element-ui vue input輸入框自動(dòng)獲取焦點(diǎn)聚焦方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 淺談validator自定義驗(yàn)證及易錯(cuò)點(diǎn)

    淺談validator自定義驗(yàn)證及易錯(cuò)點(diǎn)

    這篇文章主要介紹了validator自定義驗(yàn)證及易錯(cuò)點(diǎn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • vue3的動(dòng)態(tài)組件是如何工作的

    vue3的動(dòng)態(tài)組件是如何工作的

    這篇文章主要介紹了vue3的動(dòng)態(tài)組件是如何工作的,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-03-03
  • vue組件化中slot的基本使用方法

    vue組件化中slot的基本使用方法

    這篇文章主要給大家介紹了關(guān)于vue組件化中slot的基本使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-05-05
  • vue內(nèi)嵌iframe跨域通信的實(shí)例代碼

    vue內(nèi)嵌iframe跨域通信的實(shí)例代碼

    這篇文章主要介紹了vue內(nèi)嵌iframe跨域通信,主要介紹了Vue組件中如何引入iframe,vue如何獲取iframe對(duì)象以及iframe內(nèi)的window對(duì)象,結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì)需要的朋友可以參考下
    2022-11-11
  • vue style width a href動(dòng)態(tài)拼接問(wèn)題的解決

    vue style width a href動(dòng)態(tài)拼接問(wèn)題的解決

    這篇文章主要介紹了vue style width a href動(dòng)態(tài)拼接問(wèn)題的解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-08-08
  • vue中{__ob__: observer}對(duì)象轉(zhuǎn)化為數(shù)組進(jìn)行遍歷方式

    vue中{__ob__: observer}對(duì)象轉(zhuǎn)化為數(shù)組進(jìn)行遍歷方式

    這篇文章主要介紹了vue中{__ob__: observer}對(duì)象轉(zhuǎn)化為數(shù)組進(jìn)行遍歷方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue-router安裝和使用詳解

    vue-router安裝和使用詳解

    vue-router是Vue.js官方的路由插件,它和vue.js是深度集成的,適合用于構(gòu)建單頁(yè)面應(yīng)用,分步驟介紹了安裝和使用vue-router的方法,感興趣的朋友跟隨小編一起看看吧
    2023-08-08
  • element-ui如何防止重復(fù)提交的方法步驟

    element-ui如何防止重復(fù)提交的方法步驟

    這篇文章主要介紹了element-ui如何防止重復(fù)提交的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-12-12

最新評(píng)論