国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

webpack實(shí)踐筆記(二)---添加 loaders

cnsworder / 1159人閱讀

摘要:實(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 -D
webpack-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-server
npm 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

相關(guān)文章

  • webpack實(shí)踐筆記(三)--- 總結(jié)

    摘要:實(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處理...

    tunny 評(píng)論0 收藏0
  • webpack深入與實(shí)戰(zhàn)筆記(20171015待續(xù)...)

    摘要:中添加同樣起作用。說(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/ ...

    Airy 評(píng)論0 收藏0
  • 我的webpack學(xué)習(xí)筆記

    前言 上一篇文章我們講了多頁(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...

    mcterry 評(píng)論0 收藏0
  • 我的webpack學(xué)習(xí)筆記

    前言 上一篇文章我們講了多頁(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...

    awokezhou 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<