您好,登錄后才能下訂單哦!
1、安裝webpack
1.全局安裝webpack:npm install webpack -g 或者轉化了cnpm則將npm改為cnpm進行安裝
2.進行初始化建立package.json文件記錄插件,命令行:npm init
3.webpack安裝到項目并將寫入package.json的devDependencies中,
命令行:npm install webpack --save-dev。
2、webpack配置文件介紹
1.webpack需要配置文件webpack.config.js,手動的創建于項目根目錄中就ok。一個項目可以設置多個配置文件,每個都可以有不同的功能。
2.webpack的配置文件,格式如下:
module.exports = { //配置開始。主體 }
3.常用配置項簡單說明
entry:打包的入口文件,它可以是一個字符串或者一個對象。
output:配置打包的輸出結果,為一個對象。
fileName:定義輸出文件名,為一個字符串。
path:定義輸出文件路徑,為一個字符串。
module:定義對模塊的處理邏輯,為一個對象。
loaders:定義一系列的加載器,為一個數組。
[ { test:正則表達式,用于匹配到的文件 loader/loaders:字符串或者數組,處理匹配到的文件。 //loader:string:只需要用到一個模塊加載器 //loaders:array:要使用多個模塊加載器 include:字符串或者數組,指包含的文件夾 exclude:字符串或者數組,指排除的文件夾 } ]
resolve:影響對模塊的解析,為一個對象
extensions:自動補全識別后綴,為一個數組
plugins:定義插件,為一個數組
4.entry的詳細說明
1)當entry是一個字符串時,這個字符串表示需要打包的模塊的路徑,如果只有一個要打包的模塊,可以使用這種形式
2)當entry是一個對象
a.是數組時,如果需要將多個模塊打包成一個模塊,可以使用這個方式。如果這些模塊之間不存在依賴,數組中值的順序沒有要求,如果存在依賴,則要將依賴性最高的模塊放在最后面。
例如:entry:["./dome/one.js",".dome/two.js"]
b.是鍵值對形式的對象是,當需要分別打包成多個模塊時,可以使用這種方式,例:
entry:{ module1:"./dome/one.js", module2:["./dome/two.js","./dome/three.js"] }
注:當entry是一個鍵值對形式的對象時,包名就是鍵名,output的filename不能是一個固定的值,因為每個包的名字不能一樣
5.output詳細說明
1)output是一個對象
2)output.filename:指定輸出文件名,一個字符串。當輸出一個文件,output.filename為一個確定的字符串
如:
output:{ filename:"build.js" }
當輸出多個文件,output.filename不能為一個確定的字符串。為了讓每個文件有一個唯一的名字,需要用到下面的變量
如:
output:{ path:'./build/', fialname:'[name]_bundle.js' }
(3)output.path:指定輸出文件的路徑,相對路徑,為一個字符串
6.module.loaders詳細說明
1)module是一個對象,定義對模塊的處理邏輯
2)module.loaders是一個數組,定義一系列加載器,這個數組中的每一項都是一個對象
3)
module.loaders:[ { test:正則表達式,用于匹配到的文件 loader/loaders:字符串或者數組,處理匹配到的文件。 //loader:string:只需要用到一個模塊加載器 //loaders:array:要使用多個模塊加載器 include:字符串或者數組,指包含的文件夾 exclude:字符串或者數組,指排除的文件夾 } ]
(4)module除了可以配置loaders以外還能配置其他的值.更詳細請移步webpack官網
7.resolve.extensions詳細說明
1)resolve.extensions并不是必須配置的,當不配置時,會使用默認值["", ".webpack.js", ".web.js", ".js"],當手動為resolve.extensions設置值,它的默認值會被覆蓋
2)如果你想要每個模塊都能夠按照它們自己擴展名正確的被解析,要在數組中添加一個空字符串。
3)如果你想請求一個js文件但是在請求時不帶擴展(如:require('somecode')),那么就需要將'.js'添加到數組中。其他文件一樣
以上就是本文的全部內容,希望本文的內容對大家的學習或者工作能帶來一定的幫助,同時也希望多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。