摘要:概述上一章講的是,和這一章依舊沒(méi)有絲毫關(guān)系,這一章講的是和。插件介紹這個(gè)插件啊,用來(lái)預(yù)打包一些第三方庫(kù),因?yàn)樗麄儾唤?jīng)常修改,而每次我們引用他們之后都要將他們不斷的打包一次又一次,不但浪費(fèi)了調(diào)試編譯的時(shí)間,還浪費(fèi)了時(shí)間。
0x001 概述
上一章講的是CommonChunkPlugin,和這一章依舊沒(méi)有絲毫關(guān)系,這一章講的是DllPlugin和DllReferencePlugin。
0x002 插件介紹這個(gè)插件啊,用來(lái)預(yù)打包一些第三方庫(kù),因?yàn)樗麄儾唤?jīng)常修改,而每次我們引用他們之后都要將他們不斷的打包一次又一次,不但浪費(fèi)了調(diào)試編譯的時(shí)間,還浪費(fèi)了....時(shí)間。
0x003 栗子又來(lái)了
初始化項(xiàng)目
$ midkir 0x007-dll $ cd 0x007-dll $ cnpm init -y $ cnpm install angular lodash jquery
這次需要兩個(gè)配置文件,一個(gè)用于打包dll,一個(gè)用于打包dll-user,先配置用來(lái)打包dll的webpack.dll.config.js
$ vim ./webpack.dll.config.js // ./webpack.dll.config.js const path = require("path"); const webpack = require("webpack"); module.exports = { entry: { vendor: ["angular", "jquery","lodash"]// 用這三個(gè)庫(kù)打包成dll做測(cè)試 }, output: { path: path.join(__dirname, "dist"), filename: "[name].dll.js", library: "[name]_library" }, plugins: [ new webpack.DllPlugin({ path: path.join(__dirname, "dist", "[name]-manifest.json"), name: "[name]_library" // 需要與output.library相同 }) ] };
打包dll,將會(huì)在./dist目錄下生成vendor-minifest.json、vendor.dll.js
$ webpack --config webpack.dll.config.js
配置dll-user
$ vim ./webpack.config.js # ./webpack.config.js const path = require("path"); const webpack = require("webpack"); module.exports = { entry: { "dll-user": ["./src/index.js"] }, output: { path: path.join(__dirname, "dist"), filename: "[name].bundle.js" }, plugins: [ new webpack.DllReferencePlugin({ context: __dirname, manifest: require("./dist/vendor-manifest.json") }) ] };
添加入口文件
$ vim ./src/index.js // ./src/index.js var angular = require("angular"); console.log(angular);
打包dll-user
$ webpack Hash: 1aa3feec9d1827de7d5a Version: webpack 3.8.1 Time: 70ms Asset Size Chunks Chunk Names dll-user.bundle.js 2.88 kB 0 [emitted] dll-user [0] multi ./src/index.js 28 bytes {0} [built] [2] ./src/index.js 56 bytes {0} [built] // 注意這行 ↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ [3] delegated ./node_modules/_angular@1.6.6@angular/index.js from dll-reference vendor_library 42 bytes {0} [built] + 1 hidden module
注意:這里我們引用了angular但是在打包完的index.js中,并不存在angular,因?yàn)槲覀兺ㄟ^(guò)引用dll來(lái)引入angular,在打包的信息輸出中,對(duì)于angular的處理也變成了delegated,
更多詳細(xì)信息,請(qǐng)查看webpack關(guān)于DllPlugin章節(jié)
0x004 資源源代碼
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/89583.html
摘要:同時(shí)不能直接單純的指定輸出的文件名稱,比如,將會(huì)報(bào)錯(cuò),可以換成以下方式指定,或者其他類似方式。如果打包過(guò)程出現(xiàn)錯(cuò)誤,比如語(yǔ)法錯(cuò)誤,將會(huì)在控制臺(tái)以紅色文字顯示,并且在你修復(fù)之后會(huì)再次打包。 0x001 概述 其實(shí)我不知道怎么寫(xiě),所以決定就一塊一塊的寫(xiě)點(diǎn)平常配置的過(guò)程,根據(jù)不同東西稍微分區(qū)一下就好了 0x002 初始化項(xiàng)目結(jié)構(gòu) $ mkdir webpack_study $ cd webp...
摘要:概述上一章講的是,這一章講的是依舊是沒(méi)有任何關(guān)系。配合插件自動(dòng)插入修改配置打包并查看它以的形式被插入頭部多入口文件打包添加入口修改插件命名方式打包并查看更多用法,請(qǐng)查閱關(guān)于章節(jié)資源源代碼 0x001 概述 上一章講的是Dll,這一章講的是ExtractTextWebpackPlugin,依舊是沒(méi)有任何關(guān)系。 0x002 插件介紹 這個(gè)插件用來(lái)將css導(dǎo)出到單獨(dú)文件 0x003 栗子-不...
摘要:修改配置文件匹配的文件名,這里匹配后綴為的,只要了該文件名結(jié)尾的文件,都將使用這個(gè)來(lái)處理命中后使用的加載器查看結(jié)果,和之前一致,推薦使用配置文件形式,可以保持引入文件格式的一致性。有利于維護(hù)和美觀更多配置,可以查閱關(guān)于部分。 0x001 概述 上一章講的是DLL加速編譯,這一章開(kāi)始講loader相關(guān)的部分,但是關(guān)于plugin的部分善未完結(jié),因?yàn)榧磳⒁v的ExtractTextWebp...
0x001 概述 上一章講的是裝載模板,這一章講的是裝載樣式 0x002 配置環(huán)境 $ mkdir 0x011-styling-loader $ cd 0x011-styling-loader $ npm init -y $ npm install --save-dev webpack $ touch ./src/index.js $ vim webpack.config.js // ./web...
摘要:概述上一章講的是分離樣式,這一章講的是剩下的一些我常用的插件和上一章是沒(méi)有任何關(guān)系。環(huán)境搭建定義環(huán)境插件介紹這個(gè)插件用來(lái)定義環(huán)境變量的,直接定義在了下。安裝依賴添加資源修改配置打包其他更多配置請(qǐng)查閱關(guān)于資源源代碼 0x001 概述 上一章講的是分離樣式,這一章講的是剩下的一些我常用的插件,和上一章是沒(méi)有任何關(guān)系。 0x002 環(huán)境搭建 $ mkdir 0x0016-other-plug...
閱讀 1972·2019-08-30 15:54
閱讀 3596·2019-08-29 13:07
閱讀 3124·2019-08-29 12:39
閱讀 1789·2019-08-26 12:13
閱讀 1547·2019-08-23 18:31
閱讀 2159·2019-08-23 18:05
閱讀 1844·2019-08-23 18:00
閱讀 1043·2019-08-23 17:15