摘要:根據(jù)模板插入等生成最終生成的存放路徑,相對(duì)于的路徑模板路徑插入的位置,路徑設(shè)置屬性,屬性值是所在的路徑。配置后,在使用時(shí)將不再需要和進(jìn)行引入,直接使用即可。
一 webpack.base.conf.js
1. entry 為入口文件 1.1 在此可以綁定 babel 墊片 處理ie兼容 1.2 我們大部分為單頁面應(yīng)用(SPA),配置多頁面也可以在此配置
2. resolve.alias 別名/重定向 可以簡(jiǎn)寫文件引入路徑,避免大量無用代碼,并且增加代碼可讀性,可以省略擴(kuò)展名如 (".js", ".vue", ".json")
3. webpack強(qiáng)大的 loader 功能 3.1 可以設(shè)置 eslint ,對(duì).js和.vue文件在編譯之前進(jìn)行檢測(cè),檢查有沒有語法錯(cuò)誤 3.2 新增文件類型,必須在此配置,否則不識(shí)別 3.3 limit 限制 10000 個(gè)字節(jié)以下的圖片才使用DataURL 3.4 babel-loader 對(duì)js文件使用babel-loader轉(zhuǎn)碼,該插件是用來解析es6等代碼
4. node 該選項(xiàng)是Node.js全局變量或模塊,這里主要是防止webpack注入一些Node.js的東西到vue中二 webpack.dev.conf.js
1. html-webpack-plugin 這個(gè)插件的作用是依據(jù)一個(gè)簡(jiǎn)單的index.html模板,生成一個(gè)自動(dòng)引用你打包后的JS文件的新index.html。這在每次生成的js文件名稱不同時(shí)非常有用(比如添加了hash值)。 new HtmlWebpackPlugin({ //根據(jù)模板插入css/js等生成最終HTML filename: "../view/index.html", //生成的html存放路徑,相對(duì)于path的路徑 template: "./index.html", //html模板路徑 inject: "body", //js插入的位置,true/"head"/"body"/false favicon: "./images/favicon.ico", //favicon路徑 設(shè)置favicon屬性,屬性值是favicon所在的路徑。 minify: { //壓縮HTML文件 removeComments: true, // 移除HTML中的注釋 collapseWhitespace: true, // 刪除空白符與換行符 removeAttributeQuotes: true // 移除屬性的引號(hào) } })
2. copy-webpack-plugin 將單個(gè)文件或整個(gè)目錄復(fù)制到構(gòu)建目錄DefinePlugin允許在編譯時(shí)(compile time)配置的全局常量DllPlugin為了極大減少構(gòu)建時(shí)間。 from 定義要拷貝的源目錄 from: __dirname + ‘/src/public’ to 定義要拷貝到的目標(biāo)目錄 from: __dirname + ‘/dist’ toType file 或者 dir 可選,默認(rèn)是文件 force 強(qiáng)制覆蓋先前的插件 可選 默認(rèn)false context 可選 默認(rèn)base context可用specific context flatten 只拷貝文件不管文件夾 默認(rèn)是false ignore 忽略拷貝指定的文件 可以用模糊匹配 ### 注意: 所以 在 static 目錄下的文件,不會(huì)被壓縮,直接打包到 dist 目標(biāo)目錄中,會(huì)增大size。
3. webpack.ProvidePlugin webpack配置ProvidePlugin后,在使用時(shí)將不再需要import和require進(jìn)行引入,直接使用即可。 如 jquery echart lodash三 webpack.prod.conf.js
1. uglifyjs-webpack-plugin 用來對(duì)js文件進(jìn)行壓縮,從而減小js文件的大小,加速load速度。 1.1 pure_funcs — 默認(rèn)為null. 你可以傳入一個(gè)名稱的數(shù)組,而UglifyJs將會(huì)假定那些函數(shù)不會(huì)產(chǎn)生副作用. 危險(xiǎn): 如果名稱在作用范圍內(nèi)被重新定義了就不會(huì)檢查. 1.2 drop_debugger — 移除調(diào)試器和調(diào)試語句 1.3 warnings — 當(dāng)去掉不可達(dá)代碼或者沒有被使用的聲明等東西時(shí),顯示警告. 1.4 drop_console — 默認(rèn)為false. 傳入true會(huì)丟棄對(duì)console.函數(shù)的調(diào)用. 1.4 sourceMap 設(shè)置false后可以禁止查看顯示 Source Maps ,并且 打包后的 dist 不再生成 **.map.js 從而大大縮減size
2. extract-text-webpack-plugin 為了抽離css樣式,防止將樣式打包在js中引起頁面樣式加載錯(cuò)亂的現(xiàn)象。
3. CommonsChunkPlugin 代碼分割/提取公共代碼 用來提取第三方庫和公共模塊,避免首屏加載的bundle文件或者按需加載的bundle文件體積過大,從而導(dǎo)致加載時(shí)間過長(zhǎng),著實(shí)是優(yōu)化的一把利器。 1.1 name:可以是已經(jīng)存在的chunk(一般指入口文件)對(duì)應(yīng)的name,那么就會(huì)把公共模塊代碼合并到這個(gè)chunk上;否則,會(huì)創(chuàng)建名字為name的commons chunk進(jìn)行合并 1.2 filename:指定commons chunk的文件名 1.3 chunks:指定source chunk,即指定從哪些chunk當(dāng)中去找公共模塊,省略該選項(xiàng)的時(shí)候,默認(rèn)就是entry chunks 1.4 minChunks:既可以是數(shù)字,也可以是函數(shù),還可以是Infinity,具體用法和區(qū)別下面會(huì)說
4. compression-webpack-plugin 非常好用的壓縮插件 算法 "gzip"
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/109676.html
摘要:前言使用過進(jìn)行項(xiàng)目開發(fā)的同學(xué),一定知道或者使用過腳手架,他能夠很好的搭建項(xiàng)目結(jié)構(gòu)和工程,讓我們能夠把足夠的精力放在業(yè)務(wù)開發(fā)上。對(duì)象提供一系列屬性,用于返回系統(tǒng)信息返回當(dāng)前進(jìn)程的命令行參數(shù)數(shù)組。 前言 使用過 vue 進(jìn)行項(xiàng)目開發(fā)的同學(xué),一定知道或者使用過 vue-cli 腳手架,他能夠很好的搭建項(xiàng)目結(jié)構(gòu)和工程,讓我們能夠把足夠的精力放在業(yè)務(wù)開發(fā)上。也正是因?yàn)檫@樣,很多時(shí)候我們會(huì)因?yàn)轫?xiàng)目...
摘要:我拖拖拖拖放基礎(chǔ)篇前端掘金不要搞錯(cuò),本文不是講如何拖地的。結(jié)構(gòu)說明前端應(yīng)該從哪些方面來優(yōu)化網(wǎng)站前端掘金不知道是哪位大牛的文章,轉(zhuǎn)過來回答。 我拖拖拖 --H5 拖放 API 基礎(chǔ)篇 - 前端 - 掘金不要搞錯(cuò),本文不是講如何拖地的。看過《javascript精粹》朋友應(yīng)該知道,他實(shí)現(xiàn)拖放的過程比較復(fù)雜,現(xiàn)在時(shí)代不同了,我們用H5的新的拖放API就能非常方便的實(shí)現(xiàn)拖放效果了。最近在園子見...
摘要:因?yàn)橛脩舨挥迷诘谝淮芜M(jìn)入應(yīng)用時(shí)下載所有代碼,用戶能更快的看到頁面并與之交互。譯高階函數(shù)利用和來編寫更易維護(hù)的代碼高階函數(shù)可以幫助你增強(qiáng)你的,讓你的代碼更具有聲明性。知道什么時(shí)候和怎樣使用高階函數(shù)是至關(guān)重要的。 Vue 折騰記 - (10) 給axios做個(gè)挺靠譜的封裝(報(bào)錯(cuò),鑒權(quán),跳轉(zhuǎn),攔截,提示) 稍微改改都能直接拿來用~~~喲吼吼,喲吼吼..... 如何無痛降低 if else 面...
摘要:借助,我們通過非常簡(jiǎn)單的問答形式,方便地初始化一個(gè)工程,完全不需要擔(dān)心繁復(fù)的配置等等。簡(jiǎn)單來說,就是不僅僅能初始化工程,理論上能夠初始化一切工程,包括,等等等等,只要你有一份能夠運(yùn)行的模板,就能夠通過進(jìn)行工程的初始化。 相信對(duì)于大部分使用過VueJS的同學(xué)來說,vue-cli是他們非常熟悉的一個(gè)工具。借助vue-cli,我們通過非常簡(jiǎn)單的問答形式,方便地初始化一個(gè)vue工程,完全不需要...
摘要:轉(zhuǎn)載文章公司的平臺(tái)功能越堆越多,打包也越來越費(fèi)勁,一次十幾分鐘,運(yùn)維很不爽,搗鼓了一下預(yù)編譯,試了一下大概縮短了七八分鐘,目前感覺還行,現(xiàn)在把它記下來,給需要的童鞋當(dāng)做參考,也給自己記錄一下。 (轉(zhuǎn)載文章)公司的平臺(tái)功能越堆越多,打包也越來越費(fèi)勁,一次十幾分鐘,運(yùn)維很不爽,so搗鼓了一下預(yù)編譯,試了一下大概縮短了七八分鐘,目前感覺還行,現(xiàn)在把它記下來,給需要的童鞋當(dāng)做參考,也給自己記錄...
閱讀 1016·2021-11-22 14:56
閱讀 983·2021-11-11 16:54
閱讀 7714·2021-09-23 11:55
閱讀 3006·2021-09-22 15:57
閱讀 2792·2021-08-27 16:25
閱讀 671·2019-08-30 15:55
閱讀 1661·2019-08-30 15:43
閱讀 1596·2019-08-30 14:23