摘要:接下來將的本質和自定義。環境配置這一次需要兩個項目,一個項目是,實現了,一個是,使用了。當然沒有必要去真的重復制造輪子,只是為了掌握這種造輪子的技術,對理解整個工程,對理解功能提供更多思路而已。
0x001 概述
上一章我們講了eslint-loader的配置,常用類型的常用loader已經都講完了,大體上其他的都大同小異,需要去各大loader的官方查閱用戶手冊就可以了。接下來將loader的本質和自定義loader。
0x002 環境配置這一次需要兩個項目,一個項目是custome-loader,實現了custome-loader,一個是user,使用了custom-loader。
$ mkdir 0x0014-custome-loader $ cd 0x0014-custome-loader0x003 custome-loader實現
custome-loader項目配置
$ mkdir custome-loader $ cd custome-loader $ npm init -y
實現custome-loader
$ vim ./index.js /** * 實現一個函數 * 作用是將`var`替換成`let` * @param content 字符串 * @returns string 字符串 */ module.exports = function (content) { console.log(content) content = content.replace(/var/g, "let") console.log(content) return content; };
測試
$ vim ./test/index.js // ./test/index.js var custom = require("./../index") custom("var name="張三"") $ node ./test/index.js 元數據 var name="張三" 處理之后 let name="張三"0x004 custome-loader使用
配置
$ mkdir user $ cd user $ npm init -y $ vim webpack.config.js // ./webpack.config.js const path = require("path"); module.exports = { entry : { "index": ["./src/index.js"], }, output: { path : path.join(__dirname, "dist"), filename: "[name].bundle.js" } ;
本地安裝依賴
$ npm install --sve-dev /MY_PROJECT/PROJECT_OWN/webpack_study/0x014-custom-loader/custom-loader # 輸出 pm WARN user@1.0.0 No description npm WARN user@1.0.0 No repository field. +custom-loader@1.0.6 updated 1 package in 0.3s
修改配置
const path = require("path"); module.exports = { entry : { "index": ["./src/index.js"], }, output: { path : path.join(__dirname, "dist"), filename: "[name].bundle.js" }, module: { rules: [ { test : /.js$/, loader: "custom-loader", } ] } } ;
打包
$ webpack # 輸出 元數據 var name="張三" var age=14 處理之后 let name="張三" let age=14 Hash: 4040662a699dbc91f8dd Version: webpack 3.8.1 Time: 68ms Asset Size Chunks Chunk Names index.bundle.js 2.62 kB 0 [emitted] index [0] multi ./src/index.js 28 bytes {0} [built] [2] ./src/index.js 25 bytes {0} [built]
查看打包結果
/* 1 */ /***/ (function(module, exports) { let name="張三" let age=14 /***/ }) /******/ ]);
可以看到,webpack在打包的時候,將./src/index.js的內容作為我們定義在custome-loader中的方法的參數,同時執行該方法,將處理后的返回值作為結果輸出到./dist/index.bunle.js.
0x005 更多配置這里只是實現了一個最簡單的loader,而webpack官方還提供了許多其他的API來實現功能更加強大的loader,憑借這些API我們也可以寫出自己的file-loader、json-loader之類的。當然沒有必要去真的重復制造輪子,只是為了掌握這種造輪子的技術,對理解整個webpack工程,對理解web功能提供更多思路而已。
0x006 資源源代碼
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/89639.html
摘要:同時不能直接單純的指定輸出的文件名稱,比如,將會報錯,可以換成以下方式指定,或者其他類似方式。如果打包過程出現錯誤,比如語法錯誤,將會在控制臺以紅色文字顯示,并且在你修復之后會再次打包。 0x001 概述 其實我不知道怎么寫,所以決定就一塊一塊的寫點平常配置的過程,根據不同東西稍微分區一下就好了 0x002 初始化項目結構 $ mkdir webpack_study $ cd webp...
摘要:概述上一章講的是,這一章講的是依舊是沒有任何關系。配合插件自動插入修改配置打包并查看它以的形式被插入頭部多入口文件打包添加入口修改插件命名方式打包并查看更多用法,請查閱關于章節資源源代碼 0x001 概述 上一章講的是Dll,這一章講的是ExtractTextWebpackPlugin,依舊是沒有任何關系。 0x002 插件介紹 這個插件用來將css導出到單獨文件 0x003 栗子-不...
0x001 概述 上一章講的是裝載模板,這一章講的是裝載樣式 0x002 配置環境 $ 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...
摘要:概述上一章講的時候關于文件相關的,這一章講的是模板相關的。環境配置栗子加載安裝依賴包編寫并引入配置低于否則使用打包并查看結果可以看到,被打包成了字符串,并封裝成模塊導出。更多資源,請查閱的倉庫和官網資源源代碼 0x001 概述 上一章講的時候關于文件相關的loder,這一章講的是模板相關的loder。 0x002 環境配置 $ mkdir 0x010-templating-loader...
摘要:概述上一章講的是樣式裝載相關的,這一章見得是腳本加載相關的環境配置栗子加載安裝依賴修改配置添加配置文件使用編寫腳本打包并查看結果可以看到,語法被自動轉化成了更多配置請查閱關于章節栗子加載安裝依賴 0x001 概述 上一章講的是樣式裝載相關的loader,這一章見得是腳本加載相關的loader 0x002 環境配置 $ mkdir 0x012-transliling-loader $ c...
閱讀 1387·2021-09-26 09:55
閱讀 1921·2019-08-30 12:45
閱讀 1063·2019-08-29 11:20
閱讀 3560·2019-08-26 11:33
閱讀 3424·2019-08-26 10:55
閱讀 1692·2019-08-23 17:54
閱讀 2388·2019-08-23 15:55
閱讀 2346·2019-08-23 14:23