webpack自動(dòng)打包功能實(shí)現(xiàn)
一、了解webpack
當(dāng)前web開(kāi)發(fā)面臨的困境
1.文件依賴(lài)關(guān)系錯(cuò)綜復(fù)雜
2.靜態(tài)資源請(qǐng)求效率低
3.模塊化支持不友好
4.瀏覽器對(duì)高級(jí)javascript特性兼容程度較低
webpack是前端項(xiàng)目構(gòu)建工具(打包工具)
提供了有好的模塊化支持,以及代碼壓縮混淆,處理js兼容問(wèn)題,性能優(yōu)化等強(qiáng)大功能
二、在項(xiàng)目中安裝和配置webpack
1.運(yùn)行npm install webpack webpack-cli -D命令,安裝webpack相關(guān)的包
2.在項(xiàng)目根目錄中,創(chuàng)建名為webpack.config.js 的webpack配置文件‘
3.在webpack的配置文件中,初始化如下配置:
module.exports = { mode:'development' //mode用來(lái)指定構(gòu)建模式 }
4.在package.json配置文件中的scripts節(jié)點(diǎn)下,新增dev腳本如下:
"script":{ "dev":"webpack" //script節(jié)點(diǎn)下的腳本,可以通過(guò)npm run執(zhí)行 }
5.在終端中運(yùn)行npm run dev命令,啟動(dòng)webpack進(jìn)行項(xiàng)目打包
三、webpack的打包
1.默認(rèn)打包的入口文件為src下的index.js,默認(rèn)打包的輸出文件為dist下的main.js
2.若要修改打包的入口和出口,可以在webpack.config.js中新增如下配置:
const path = require('path') module.exports = { entry: path.join(__dirname, './src/index.js'), output: { path: path.join(__dirname, './dist'), // 輸出文件的存放路徑 filename: 'bundle.js' // 輸出文件的名稱(chēng) } }
3.運(yùn)行npm run dev進(jìn)行打包,會(huì)發(fā)現(xiàn)在dist文件中出現(xiàn)bundle.js文件
4.將bundle.js引用到index.html中,運(yùn)行頁(yè)面。
四、webpack的自動(dòng)打包
1.為什么要進(jìn)行自動(dòng)打包?
若修改js中的樣式,例如jquery中的 $(‘li:odd’).css(‘backgroundColor’,‘red’)代碼,會(huì)發(fā)現(xiàn)頁(yè)面樣式并沒(méi)有發(fā)生改變,因?yàn)槲覀冊(cè)趇ndex.html中引入的是bundle.js而不是index.js,所以每次修改代碼都得npm run dev 進(jìn)行打包,自動(dòng)打包會(huì)更方便,也就是熱更新。
2.配置webpack的自動(dòng)打包功能
(1)運(yùn)行npm install webpack-dev-server -D命令,安裝支持項(xiàng)目自動(dòng)打包的工具
(2)修改package.json -> scripts 中的dev命令如下:
"scripts":{ "dev":"webpack-dev-server" //script節(jié)點(diǎn)下的腳本,可以通過(guò)npm run 執(zhí)行 }
(3)將src -> index.html中,scripts腳本的引用路徑,修改為“/bundle.js”,該文件是虛擬的,看不見(jiàn)的。
(4)運(yùn)行npm run dev命令,重新進(jìn)行打包
(5)在瀏覽器中訪問(wèn)http://localhost:8080地址,查看自動(dòng)打包效果
若出現(xiàn) Cannot find module ‘webpack-cli/bin/config-yargs’
問(wèn)題,可能是webpack與webpack-dev-server版本不兼容
到此這篇關(guān)于webpack自動(dòng)打包的文章就介紹到這了,更多相關(guān)webpack自動(dòng)打包內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JavaScript中關(guān)鍵字 in 的使用方法詳解
這篇文章主要介紹了JavaScript中關(guān)鍵字 in 的使用方法詳解,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10js倒計(jì)時(shí)簡(jiǎn)單實(shí)現(xiàn)方法
這篇文章主要介紹了js倒計(jì)時(shí)簡(jiǎn)單實(shí)現(xiàn)方法,方便一些提示重要日期的來(lái)臨,感興趣的小伙伴們可以參考一下2015-12-12JavaScript實(shí)現(xiàn)統(tǒng)計(jì)文本框Textarea字?jǐn)?shù)增強(qiáng)用戶(hù)體驗(yàn)
現(xiàn)在流行的Twitter等微博客網(wǎng)站,有一個(gè)很好的用戶(hù)體驗(yàn),就是在文本框中輸入文字的時(shí)候,會(huì)自動(dòng)統(tǒng)計(jì)輸入的字符,并顯示用戶(hù)還能輸入的字符,在限制了140個(gè)字的微博客中,這樣的小提示可以很好的增強(qiáng)用戶(hù)體驗(yàn),本文也嘗試著實(shí)現(xiàn)一下2012-12-12javascript運(yùn)動(dòng)效果實(shí)例總結(jié)(放大縮小、滑動(dòng)淡入、滾動(dòng))
這篇文章主要介紹了javascript運(yùn)動(dòng)效果,結(jié)合實(shí)例形式總結(jié)分析JavaScript實(shí)現(xiàn)放大縮小、滑動(dòng)淡入、滾動(dòng)等效果的方法,需要的朋友可以參考下2016-01-01收集的比較全的automation服務(wù)器不能創(chuàng)建對(duì)象 異常原因和解決方法
對(duì)于出現(xiàn)automation服務(wù)器不能創(chuàng)建對(duì)象的問(wèn)題,下面有幾種解決方法大家可以試試。2008-10-10JavaScript鏈?zhǔn)秸{(diào)用實(shí)例淺析
這篇文章主要介紹了JavaScript鏈?zhǔn)秸{(diào)用,結(jié)合實(shí)例形式分析了javascript鏈?zhǔn)秸{(diào)用的相關(guān)原理、實(shí)現(xiàn)方法及操作注意事項(xiàng),需要的朋友可以參考下2018-12-12判斷字符串的長(zhǎng)度(優(yōu)化版)中文占兩個(gè)字符
判斷字符串的長(zhǎng)度的方法有很多,本例介紹的是優(yōu)化之前的方法,記住中文占兩個(gè)字符,需要的朋友不要錯(cuò)過(guò)2014-10-10JavaScript高級(jí)編程之Array的用法總結(jié)
這篇文章主要為大家介紹了JavaScript中Array常見(jiàn)用法的總結(jié),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來(lái)幫助2022-11-11uniapp頁(yè)面?zhèn)鲄⒌娜N方式實(shí)例總結(jié)
在進(jìn)行頁(yè)面的跳轉(zhuǎn)的時(shí)候,往往需要我們將一些參數(shù)攜帶著傳遞過(guò)去這里的class樣式,下面這篇文章主要給大家介紹了關(guān)于uniapp頁(yè)面?zhèn)鲄⒌娜N方式,需要的朋友可以參考下2022-11-11