溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

webpack4.x開發(fā)環(huán)境配置的示例分析

發(fā)布時(shí)間:2021-08-17 13:46:12 來源:億速云 閱讀:125 作者:小新 欄目:web開發(fā)

這篇文章將為大家詳細(xì)講解有關(guān)webpack4.x開發(fā)環(huán)境配置的示例分析,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

具體如下:

一、全局安裝webpack

如果我們按照舊版本的安裝方式,直接使用npm全局安裝webpack,我們預(yù)期全局安裝webpack后,便能在命令行中使用webpack指令。我們?cè)诿钚休斎耄?/p>

npm install -g webpack

當(dāng)執(zhí)行該操作后,便在C:\Users\你的用戶名\AppData\Roaming\npm\node_modules創(chuàng)建了webpack文件夾,里面存儲(chǔ)了剛剛?cè)职惭b的webpack模塊。

二、創(chuàng)建項(xiàng)目

我們?cè)诤线m位置新建一個(gè)文件夾webpack-test,用于存放我們的項(xiàng)目。
命令行中定位到webpack-test文件夾下,輸入以下命令進(jìn)行項(xiàng)目的初始化:

npm init

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

三、嘗試打包出現(xiàn)提示

我們?cè)陧?xiàng)目根目錄新建一個(gè)文件hello.js,并在其中輸入代碼:

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

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

webpack hello.js bundle.js

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

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(命令行工具)已經(jīng)轉(zhuǎn)移到了一個(gè)單獨(dú)的包webpack-cli中。
除了webpack自身外,請(qǐng)額外安裝webpack-cli來使用CLI。
-> 使用npm安裝:npm install webpack-cli -D
->使用yarn安裝:yarn add webpack-cli -D

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

四、安裝webpack-cli

我們?cè)陧?xiàng)目中本地安裝webpack-cli

npm install webpack-cli -D

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

我們?cè)诟夸浽俅屋斎耄?/p>

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也應(yīng)該是同理。

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

npm uninstall webpack-cli
npm install -g webpack-cli

五、設(shè)置模式

我們?cè)俅螄L試打包:

webpack hello.js bundle.js

看樣子似乎是可以運(yùn)行了,但又出現(xiàn)了新的提示:

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”選項(xiàng)尚未設(shè)置。將“mode”選項(xiàng)設(shè)為“development”或“production”以啟用此環(huán)境的默認(rèn)設(shè)置。
multi錯(cuò)誤 ./ hello.js bundle.js
未發(fā)現(xiàn)模塊:錯(cuò)誤:無法解析'C:/Users/你的用戶名/Desktop/webpack-test'中的bundle.js
@ multi ./hello.js bundle.js

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

webpack --mode development

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

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

翻譯成中文:

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

六、創(chuàng)建入口文件

這表明webpack4.x是以項(xiàng)目根目錄下的'./src'作為入口,但我們的項(xiàng)目中缺乏該路徑,因此我們?cè)诟夸浵聞?chuàng)建src文件夾,事實(shí)上webpack4.x以'./src/index.js'作為入口,單單創(chuàng)建src文件而沒有index.js文件仍然會(huì)報(bào)錯(cuò),因此我們

將hello.js移動(dòng)到'./src',并重命名為index.js。

現(xiàn)在如果我們?cè)俅螆?zhí)行

webpack index.js bundle.js

會(huì)提示can.t resolve相關(guān)的錯(cuò)誤。

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

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

webpack --mode development

或者

webpack --mode production

這樣便能夠?qū)崿F(xiàn)將'./src/index.js'打包成'./dist/main.js'。

不過每次都要輸入這個(gè)命令,非常麻煩,我們?cè)趐ackage.json中scripts中加入兩個(gè)成員:

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

以后我們只需要在命令行執(zhí)行npm run dev便相當(dāng)于執(zhí)行webpack --mode development,執(zhí)行npm run build便相當(dāng)于執(zhí)行webpack --mode production

我們?cè)诟夸泩?zhí)行:

npm run dev

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

七、配置其他參數(shù)

我們?nèi)绻枰渲脀ebpack指令的其他參數(shù),只需要在webpack –mode production/development后加上其他參數(shù)即可,如:

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

當(dāng)然,這也可以寫入package.json的scripts之中。

八、總結(jié)

我們可以將以上探索進(jìn)行整理總結(jié),首先是注意事項(xiàng):

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

配置步驟:

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

關(guān)于“webpack4.x開發(fā)環(huán)境配置的示例分析”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI