webpack是打包命令。如果我們不指定它的后繼參數,其實也能實現打包。但是有一些小的限制。
webpack如果不指定輸入和輸出,那么默認的打包文件就是./src/index,默認的輸出路徑是./dist/index.js
第一種是通過build,有點長。另外一個是通過webpack配置文件,這兩個沒有太大的區別,干的都是同一件事情,只是用了不同的方法。
如果用第一種方法,在build中,需要寫配置節,給全參數。
打包命令的表達式:webpack 源文件路徑 -o 輸出文件路徑 --(模式)
最后在終端輸入npm run build點擊回車執行
第二種方法,就需要在根目錄下新建一個webpack.config.js文件,在里面配置打包入口,配置打包出口(需要配置一個webpack文件,也就是對打包工具webpack進行配置,在里面配置輸入和輸出)
(注意:需要使用nodejs語法,因為webpack是nodejs底下的工具,所以它遵循的是nodejs的語法)
如圖:暴露入口出口
entry是入口
output是出口
__dirname是nodejs提供的(相當於是常量),用__dirname就能獲取到我們當前的這個文件的目錄的絕對路徑。
join是專門用來拼接路徑的,join是nodejs專門封裝的一個連接路徑的方法。
filename表示打包完了后最終的js文件叫什么名字
最后在終端輸入npm run dev點擊回車執行
webpack打包的執行過程:
webpack在打包的時候,首先就要看看我們給沒給參數,我們打包的時候要么執行的是第一種模式,參數補全的,要么就是第二種模式,參數沒有補全的。它先看我們有沒有補全這些參數(有沒有給入口,有沒有給出口,有沒有給-o...),如果有就按照我們寫的這些東西去打包。如果沒有它就去找一個叫做webpack.config.js的這樣一個配置文件。
--mode development和--mode production的區別:
--mode production是生產模式,會把打包好后的代碼進行壓縮,可閱讀性不好,但是代碼體積小。
--mode development是開發模式,不會壓縮代碼,可閱讀性好,但是代碼體積大。
注意:npm run 其實是間接執行了webpack打包命令,npm命令是nodejs的命令,它本身不具備打包的功能。
webpack.config.js文件與package.json文件有什么區別?
package.json是整個項目的配置文件
webpack.config.js是對webpack打包工具的配置文件