摘要:實(shí)踐筆記二源碼地址本篇文章基于分支切換分支加載順序分了三個(gè)級(jí)別,,分別代表前中后,三個(gè)處理狀態(tài)。安裝相關(guān)包創(chuàng)建文件,每個(gè)公司采用適合自己的規(guī)則。配置文件較大,可查看項(xiàng)目源碼。
webpack實(shí)踐筆記(二)--- add loaders [源碼地址]:( https://github.com/silence717... )
本篇文章基于分支step2,切換分支:git checkout step2
loader加載順序分了三個(gè)級(jí)別,preloaders,loaders,postloaders,分別代表前中后,三個(gè)處理狀態(tài)。
添加es6 loader 創(chuàng)建一個(gè)es6的文件login.es6// login.es6 let login = (username, password) => { if(username !== "admin" || password !== "123") { console.log("incorrect login"); } else { console.log("correct login"); } }; login("admin", "123");
需要使用es6,由于瀏覽器支持不夠,我們必須使用babel轉(zhuǎn)為es5的code。
安裝babel相關(guān)的包:npm install babel-core babel-loader babel-preset-es2015創(chuàng)建babelrc文件,配置為:
{ "presets": ["es2015"] }webpack-config.js中配置loader
module: { loaders: [ { test: /.es6$/, exclude: /node_modules/, loader: "babel-loader" } ] }, resolve: { extensions: ["", ".js", ".es6"] }
運(yùn)行dev-server,看到文件成功執(zhí)行,這時(shí)我們看到bundle.js中編譯后的code為:
var login = function login(username, password) { if (username !== "admin" || password !== "123") {} }; login("admin", "456");添加preloader,對(duì)js文件進(jìn)行校驗(yàn)
我們習(xí)慣在項(xiàng)目中使用的是eslint,或者jslint也可以,看個(gè)人愛(ài)好。
安裝eslint相關(guān)包npm install eslint eslint-loader eslint-plugin-promise eslint-plugin-standard babel-eslint -D創(chuàng)建.eslintrc文件,每個(gè)公司采用適合自己的規(guī)則。配置文件較大,可查看項(xiàng)目源碼。 webpack-config.js中添加配置,在此我們采用preloader
preLoaders: [ { test: /.js$/, exclude: "node_modules", loader: "eslint-loader" } ]
重新啟動(dòng),如果code中存在不符合規(guī)范的,webpack在編譯時(shí)候就會(huì)出錯(cuò),根據(jù)提示更改對(duì)應(yīng)文件。
package.json中的scripts我不能一直使用這么復(fù)雜的命令去啟動(dòng),so 我們可以在package.json中配置一下scripts:
"scripts": { "start": "webpack-dev-server", }
這樣我們每次啟動(dòng)只需要執(zhí)行 npm start 即可。
在此說(shuō)明兩點(diǎn):
1、 npm的start是一個(gè)特殊的腳本名稱(chēng),在命令行中使用npm start就可以執(zhí)行相關(guān)命令,如果對(duì)應(yīng)的此腳本名稱(chēng)不是start,想要在命令行中運(yùn)行時(shí),需要這樣用npm run {script name},如npm run dev.
2、 window環(huán)境下不支持&連接命令執(zhí)行,如:gulp & nodemon mock-server.js。
production vs dev生產(chǎn)環(huán)境我們需要對(duì)js進(jìn)行打包壓縮,而dev環(huán)境我們希望使用源碼便于調(diào)試。
// 生產(chǎn)環(huán)境 webpack -d // 開(kāi)發(fā)環(huán)境 webpack -p
分別執(zhí)行這兩個(gè)命令,你可以看到bundle.js內(nèi)容是不相同的,一個(gè)壓縮一個(gè)未經(jīng)壓縮。
為了便于管理,我們創(chuàng)建一個(gè)webpack-bulid.config.js文件var devConfig = require("./webpack.config"); module.exports = devConfig;
通常在開(kāi)發(fā)環(huán)境我們會(huì)經(jīng)常使用console.log,debug來(lái)進(jìn)行代碼調(diào)試,這些其實(shí)是不允許帶入生產(chǎn)環(huán)境的。
盡管采用一系列限制,但是為了防患于未然,我們引入strip-loader包:
npm install strip-loader -Dwebpack-build.config.js配置strip-loader
var WebpackStrip = require("strip-loader"); var devConfig = require("./webpack.config"); var stripLoader = { test: [/.js$/, /.es6$/], exclude: /node_modules/, loader: WebpackStrip.loader("console.log", "debug") }; devConfig.module.loaders.push(stripLoader); module.exports = devConfig;設(shè)置webpack執(zhí)行的配置文件
webpack --config webpack-build.config.js -p
這個(gè)命令執(zhí)行完之后,bundle.js就按照build中的的配置對(duì)代碼進(jìn)行了一系列合作。
說(shuō)明: webpack --config 用于設(shè)置使用哪個(gè)配置文件做操作。
為了便于調(diào)試,我們?nèi)职惭b一個(gè)http-server,用于啟動(dòng)我們的項(xiàng)目。 安裝http-servernpm install http-server -g運(yùn)行
http-server
打開(kāi)瀏覽器訪問(wèn)http://127.0.0.1:8080/,
此時(shí)打開(kāi) console,發(fā)現(xiàn)并沒(méi)有任何東西輸出,這就是strip-loader的作用。
再查看sources中的bundle.js為壓縮后的文件。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/80394.html
摘要:實(shí)踐筆記三總結(jié)需要單獨(dú)安裝并且在文件中的下進(jìn)行配置,配置參數(shù)有匹配處理的文件的拓展名的正則表達(dá)式必須的名稱(chēng)必須,一般以的方式命名,代表了這個(gè)要做的轉(zhuǎn)換功能,比如。允許你在修改組件代碼后,自動(dòng)刷新實(shí)時(shí)預(yù)覽修改后的效果。 webpack實(shí)踐筆記(三)--- 總結(jié) loaders 需要單獨(dú)安裝并且在config文件中的modules下進(jìn)行配置,配置參數(shù)有: test:匹配loaders處理...
摘要:中添加同樣起作用。說(shuō)明提供的命令,打包時(shí)模塊綁定的加載器為命令,監(jiān)聽(tīng)打包的文件,只要改變自動(dòng)會(huì)打包命令窗口顯示打包進(jìn)度命令窗口列出引入的所有模塊命令窗口顯示打包引入模塊的原因 標(biāo)注:本筆記來(lái)自 imooc-qbaty老師-webpack深入與實(shí)戰(zhàn)gitbash(or CMD)進(jìn)行命令操作 一、準(zhǔn)備工作 lenovo@lenovo-PC MINGW64 ~ $ cd /d/imooc/ ...
前言 上一篇文章我們講了多頁(yè)面js的打包,本篇文章我們繼續(xù)scss的打包。 多頁(yè)面css單獨(dú)打包 首先,我們css編寫(xiě)采用的是sass,所以我們先來(lái)安裝sass-loader以及可以用到的依賴 $ npm install sass-loader node-sass css-loader style-loader --save-dev 安裝完loaders,下面在webpack.config.js...
前言 上一篇文章我們講了多頁(yè)面js的打包,本篇文章我們繼續(xù)scss的打包。 多頁(yè)面css單獨(dú)打包 首先,我們css編寫(xiě)采用的是sass,所以我們先來(lái)安裝sass-loader以及可以用到的依賴 $ npm install sass-loader node-sass css-loader style-loader --save-dev 安裝完loaders,下面在webpack.config.js...
閱讀 837·2021-11-18 10:07
閱讀 2355·2021-10-14 09:42
閱讀 5316·2021-09-22 15:45
閱讀 585·2021-09-03 10:29
閱讀 3462·2021-08-31 14:28
閱讀 1873·2019-08-30 15:56
閱讀 3038·2019-08-30 15:54
閱讀 994·2019-08-29 11:32