亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > JS > 正文

webpack4.x開發環境配置詳解

2024-05-06 16:45:32
字體:
來源:轉載
供稿:網友

本文實例講述了webpack4.x開發環境配置方法。分享給大家供大家參考,具體如下:

寫這篇文章的初衷在于,雖然網絡上關于webpack的教程不少,但是大多已經過時,由于webpack版本更新后許多操作變化很大,很多教程的經驗已經不適合。當我們使用npm安裝webpack時,若不指定webpack的版本,將默認安裝最新版,筆者測試時默認安裝的是4.1.1,并不能照搬老教程的方法。為此,筆者進行了最新版配置的探索,使用的是windows操作系統,如果你的是webpack4.x版本,可參考進行配置。

注意:本文并不是直接把正確步驟放上去,而是分析了各種報錯情況及原因,文章的步驟顯得繞彎子。如果僅僅想看正確步驟,建議直接看第八點的配置步驟再返回查找各步驟的操作。

一、全局安裝webpack

如果我們按照舊版本的安裝方式,直接使用npm全局安裝webpack,我們預期全局安裝webpack后,便能在命令行中使用webpack指令。我們在命令行輸入:

npm install -g webpack

當執行該操作后,便在C:/Users/你的用戶名/AppData/Roaming/npm/node_modules創建了webpack文件夾,里面存儲了剛剛全局安裝的webpack模塊。

二、創建項目

我們在合適位置新建一個文件夾webpack-test,用于存放我們的項目。
命令行中定位到webpack-test文件夾下,輸入以下命令進行項目的初始化:

npm init

這里,要求設置很多選項,可以按項目情況配置也可以不填直接回車。完成后,我們發現文件夾中增加了package.json文件,它用于保存關于項目的信息。

三、嘗試打包出現提示

我們在項目根目錄新建一個文件hello.js,并在其中輸入代碼:

function hello(str) {  alert(str);}hello('hello world!');

然后,我們便可以滿懷期待地嘗試打包,在命令行輸入:

webpack hello.js bundle.js

意思是將hello.js打包成另一個文件bundle.js。但很不幸,4.1.1版本會提示:

The CLI moved into a separate package:webpack-cli.
Please install 'webpack-cli' in addition to webpack itself to use the CLI.
->when using npm: npm install webpack-cli -D
->when using yarn: yarn add webpack-cli -D

翻譯成中文:

CLI(命令行工具)已經轉移到了一個單獨的包webpack-cli中。
除了webpack自身外,請額外安裝webpack-cli來使用CLI。
-> 使用npm安裝:npm install webpack-cli -D
->使用yarn安裝:yarn add webpack-cli -D

意思是,我們需要額外安裝webpack-cli,否則便不能在命令行中使用webpack的相關命令。

四、安裝webpack-cli

我們在項目中本地安裝webpack-cli

npm install webpack-cli -D

這里-D參數和–save-dev的作用相同,只是一種簡寫而已。筆者這里安裝完成后,顯示webpack-cli版本是2.0.10。

我們在根目錄再次輸入:

webpack hello.js bundle.js

很不幸,還是提示:

The CLI moved into a separate package:webpack-cli.
Please install 'webpack-cli' in addition to webpack itself to use the CLI.
->when using npm: npm install webpack-cli -D
->when using yarn: yarn add webpack-cli -D

這表明我們本地安裝webpack-cli后并沒有起作用,在命令行中依然不能使用webpack命令。那么是什么地方出了問題呢?
我們不難想到,

舊版本的webpack中,webpack指令要能在命令行中使用,需要全局安裝webpack,而不是本地安裝,因此這里的webpack-cli也應該是同理。

我們卸載本地安裝的webpack-cli,全局安裝webpack-cli:

npm uninstall webpack-clinpm install -g webpack-cli

五、設置模式

我們再次嘗試打包:

webpack hello.js bundle.js

看樣子似乎是可以運行了,但又出現了新的提示:

WARNING in configuration
The 'mode' option has not been set. Set  'mode' option to 'development' or 'production' to enable defaults for this enviroment.
ERROR in multi ./hello.js bundle.js
Module not found:ERROR:Can't resolve 'bundle.js' in 'C:/Users/你的用戶名/Desktop/webpack-test'
@ multi ./hello.js bundle.js

翻譯成中文:

配置警告:
“mode”選項尚未設置。將“mode”選項設為“development”或“production”以啟用此環境的默認設置。
multi錯誤 ./ hello.js bundle.js
未發現模塊:錯誤:無法解析'C:/Users/你的用戶名/Desktop/webpack-test'中的bundle.js
@ multi ./hello.js bundle.js

這里提示我們存在的第一個問題是沒有配置webpack的mode選項,默認有production和development兩種模式可以設置,因此我們嘗試設為development模式,在命令行輸入:

webpack --mode development

我們看到進行了打包并顯示了Hash、Version、Time、Build at信息,表明已經可以打包。不過,仍然有錯誤提示:

ERROR in Entry module not found:ERROR:Can't resolve './src' in 'C:/Users/你的用戶名/Desktop/webpack-test'

翻譯成中文:

未找到入口模塊發生錯誤:錯誤:無法解析'C:/Users/你的用戶名/Desktop/webpack-test'中的'./src'

六、創建入口文件

這表明webpack4.x是以項目根目錄下的'./src'作為入口,但我們的項目中缺乏該路徑,因此我們在根目錄下創建src文件夾,事實上webpack4.x'./src/index.js'作為入口,單單創建src文件而沒有index.js文件仍然會報錯,因此我們

hello.js移動到'./src',并重命名為index.js。

現在如果我們再次執行

webpack index.js bundle.js

會提示can.t resolve相關的錯誤。

原因是,webpack4.x的打包已經不能用webpack 文件a 文件b的方式,而是直接運行webpack --mode development或者webpack --mode production,這樣便會默認進行打包,入口文件是'./src/index.js',輸出路徑是'./dist/main.js',其中src目錄即index.js文件需要手動創建,而dist目錄及main.js會自動生成。

因此我們不再按webpack 文件a 文件b的方式運行webpack指令,而是直接運行

webpack --mode development

或者

webpack --mode production

這樣便能夠實現將'./src/index.js'打包成'./dist/main.js'。

不過每次都要輸入這個命令,非常麻煩,我們在package.json中scripts中加入兩個成員:

"dev":"webpack --mode development", "build":"webpack --mode production"

以后我們只需要在命令行執行npm run dev便相當于執行webpack --mode development,執行npm run build便相當于執行webpack --mode production。

我們在根目錄執行:

npm run dev

可以看到根目錄下生成了dist目錄,并且dist目錄下生成了main.js文件,main.js文件已經打包了src目錄下index.js文件的代碼。

七、配置其他參數

我們如果需要配置webpack指令的其他參數,只需要在webpack –mode production/development后加上其他參數即可,如:

webpack --mode development --watch --progress --display-modules --colors --display-reasons

當然,這也可以寫入package.json的scripts之中。

八、總結

我們可以將以上探索進行整理總結,首先是注意事項:

1、webpack-cli必須要全局安裝,否則不能使用webpack指令;
2、webpack也必須要全局安裝,否則也不能使用webpack指令。
3、webpack4.x中webpack.config.js這樣的配置文件不是必須的。
4、默認入口文件是./src/index.js,默認輸出文件./dist/main.js。

配置步驟:

1、創建工程目錄;
2、初始化工程目錄:npm init。
3、全局安裝webpack-cli。
4、全局安裝webpack。
5、webpack –mode development/production進行打包,可在package.json中配置dev和build的腳本,便只需運行npm run dev/build,作用相同。
6、在webpack –mode development/production可串聯設置其他參數。

希望本文所述對大家基于webpack的前端程序設計有所幫助。


注:相關教程知識閱讀請移步到JavaScript/Ajax教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
精品成人久久av| 欧美一级大片在线观看| 国产精品欧美风情| 这里只有精品视频在线| 日韩女优在线播放| 亚洲欧美成人一区二区在线电影| 亚洲国产欧美自拍| 国模精品视频一区二区三区| 浅井舞香一区二区| 亚洲欧洲激情在线| 成人性生交大片免费观看嘿嘿视频| 中文字幕亚洲欧美日韩2019| 久久久久久18| 欧美理论在线观看| 亚洲有声小说3d| 久久久免费高清电视剧观看| 大胆欧美人体视频| 成人有码在线视频| 国产亚洲精品va在线观看| 亚洲国产精品电影| 浅井舞香一区二区| 日韩亚洲欧美中文高清在线| 欧美一级大胆视频| 精品久久久一区| 欧美国产日韩一区二区| 欧美日韩国产999| 日韩av资源在线播放| 欧美激情在线一区| 色噜噜国产精品视频一区二区| 在线播放国产精品| 中文字幕欧美日韩va免费视频| 社区色欧美激情 | 久久久久久有精品国产| 国产不卡一区二区在线播放| 久久精品在线视频| 成人有码在线播放| 日韩在线免费观看视频| 成人免费视频在线观看超级碰| 久久久人成影片一区二区三区观看| 成人精品一区二区三区电影免费| 亚洲va国产va天堂va久久| 国产精品视频专区| 欧美影院在线播放| 国产成人综合亚洲| 国产一区玩具在线观看| 欧美黄色三级网站| 国语自产精品视频在线看一大j8| 国模视频一区二区| 在线观看日韩av| 91久久久亚洲精品| 日韩av123| 亚洲毛片一区二区| 色偷偷噜噜噜亚洲男人| 久久韩剧网电视剧| 疯狂蹂躏欧美一区二区精品| 精品久久久久久久久久久久| 国模极品一区二区三区| 中文字幕av一区中文字幕天堂| 亚洲国产古装精品网站| 国产精品视频永久免费播放| 欧美极品少妇与黑人| 国产精品一区二区在线| 97视频com| 精品国产一区二区三区久久狼5月| 久久精品这里热有精品| 欧美日韩国产页| 亚洲999一在线观看www| 日韩成人av网址| 日韩成人激情影院| 欧美成人三级视频网站| 国产精品69久久久久| 欧美巨猛xxxx猛交黑人97人| 色悠悠久久88| 国产欧美日韩免费看aⅴ视频| 在线观看欧美日韩国产| 欧美丰满少妇xxxxx| 在线观看精品国产视频| 最近2019中文字幕在线高清| 欧美日韩激情视频8区| 久久久亚洲国产天美传媒修理工| 亚洲精品在线看| 精品亚洲aⅴ在线观看| 国语自产在线不卡| 国产91热爆ts人妖在线| 国产成人精品免费视频| 国产精品久久久久久久久久| 久久精品一本久久99精品| 欧美国产日产韩国视频| 亚洲成人网在线观看| 精品国产精品自拍| 丝袜美腿精品国产二区| 一区二区三区视频免费在线观看| 国产精品小说在线| 97在线视频国产| 日韩一二三在线视频播| 亚洲老司机av| 亚洲精品suv精品一区二区| 91色在线观看| 亚洲理论电影网| 欧美精品一区二区三区国产精品| 欧美性少妇18aaaa视频| 国产精品视频一区二区三区四| 国产精品中文字幕在线观看| 91高清视频免费| 亚洲欧洲在线观看| 91在线视频精品| 欧美在线观看视频| 午夜精品一区二区三区在线视频| 日韩中文字幕精品视频| 久久久爽爽爽美女图片| 欧美精品在线观看| 色综合久久悠悠| 精品亚洲一区二区三区四区五区| 欧美特级www| 亚洲性69xxxbbb| 国产精品国产自产拍高清av水多| 欧美夫妻性视频| 欧美激情一区二区三区成人| 亚洲欧美国产va在线影院| 亚洲激情国产精品| 黑人与娇小精品av专区| 亚洲精品ady| 亚洲国产私拍精品国模在线观看| 成人中文字幕在线观看| 久久精品国产一区二区电影| 亚洲性视频网址| 日本久久久久久久| 欧美专区在线视频| 在线观看久久av| 精品久久久一区二区| 九九视频直播综合网| 国产美女精品视频免费观看| 欧美整片在线观看| 久久久久久久久久国产精品| 欧美大片网站在线观看| 精品国产欧美一区二区三区成人| 福利二区91精品bt7086| 姬川优奈aav一区二区| 久久亚洲精品毛片| www.亚洲一区| 欧美性猛交xxxx黑人| 一区二区三欧美| 成人欧美在线视频| 国产精品美女网站| 亚洲综合中文字幕68页| 91亚洲精华国产精华| 欧美精品日韩三级| 91国产在线精品| 91在线观看免费观看| 欧美一区二区三区图| 国产精品日韩在线观看| 九九热这里只有在线精品视| 亚洲人成在线电影| 日韩精品在线免费播放| 久久久免费在线观看| 在线视频日本亚洲性| 欧美成人四级hd版| 91系列在线播放| 91成人福利在线| 色综合色综合久久综合频道88| 欧美色道久久88综合亚洲精品| 亚州国产精品久久久| 国产精品观看在线亚洲人成网| 久久av红桃一区二区小说|