欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解webpack require.ensure與require AMD的區(qū)別

 更新時(shí)間:2017年12月13日 12:00:35   作者:zhbhun  
本篇文章主要介紹了詳解webpack require.ensure與require AMD的區(qū)別,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

簡(jiǎn)介

require-ensurerequire-amd的區(qū)別:

require-amd

說(shuō)明: 同AMD規(guī)范的require函數(shù),使用時(shí)傳遞一個(gè)模塊數(shù)組和回調(diào)函數(shù),模塊都被下載下來(lái)且都被執(zhí)行后才執(zhí)行回調(diào)函數(shù)

語(yǔ)法: require(dependencies: String[], [callback: function(...)])

參數(shù)

  1. dependencies: 模塊依賴(lài)數(shù)組
  2. callback: 回調(diào)函數(shù)

require-ensure

說(shuō)明: require.ensure在需要的時(shí)候才下載依賴(lài)的模塊,當(dāng)參數(shù)指定的模塊都下載下來(lái)了(下載下來(lái)的模塊還沒(méi)執(zhí)行),便執(zhí)行

參數(shù)指定的回調(diào)函數(shù)。require.ensure會(huì)創(chuàng)建一個(gè)chunk,且可以指定該chunk的名稱(chēng),如果這個(gè)chunk名已經(jīng)存在了,則將本次依賴(lài)的模塊合并到已經(jīng)存在的chunk中,最后這個(gè)chunk在webpack構(gòu)建的時(shí)候會(huì)單獨(dú)生成一個(gè)文件。

語(yǔ)法: require.ensure(dependencies: String[], callback: function([require]), [chunkName: String])

  1. dependencies: 依賴(lài)的模塊數(shù)組
  2. callback: 回調(diào)函數(shù),該函數(shù)調(diào)用時(shí)會(huì)傳一個(gè)require參數(shù)
  3. chunkName: 模塊名,用于構(gòu)建時(shí)生成文件時(shí)命名使用

注意點(diǎn):requi.ensure的模塊只會(huì)被下載下來(lái),不會(huì)被執(zhí)行,只有在回調(diào)函數(shù)使用require(模塊名)后,這個(gè)模塊才會(huì)被執(zhí)行。

示例

require-amd

源代碼

webpack.config.amd.js

var path = require("path");
module.exports = {
  entry: "./example.amd.js",
  output: {
    path: path.join(__dirname, "amd"),
    filename: "[name].bundle.js",
    chunkFilename: "[id].chunk.js"
  }
};

example.amd.js

require(["./module1"], function(module1) {
  console.log("aaa");
  var module2 = require("./module2");
  console.log("bbb");
});

module1.js

console.log("module1");
module.exports = 1;

module2.js

console.log("module2");
module.exports = 2;  

構(gòu)建結(jié)果

命令行中運(yùn)行webpack --config webpack.config.amd.js
- main.bundle.js
- example.amd.js
- 1.chunk.js
- module1.js
- module2.js

運(yùn)行結(jié)果

瀏覽器中運(yùn)行amd/index.html,控制臺(tái)輸出:

module1
aaa
module2
bbb

require-ensure

源代碼

webpack.config.ensure.js

var path = require("path");
module.exports = {
  entry: "./example.ensure.js",
  output: {
    path: path.join(__dirname, "ensure"),
    filename: "[name].bundle.js",
    chunkFilename: "[name].chunk.js"
  }
};

example.ensure.js

require.ensure(["./module1"], function(require) {
  console.log("aaa");
  var module2 = require("./module2");
  console.log("bbb");
  require("./module1");
}, 'test');

module1.js
同上

module2.js
同上

構(gòu)建結(jié)果

命令行中運(yùn)行webpack --config webpack.config.ensure.js
- main.bundle.js
- example.amd.js
- 1.chunk.js
- module1.js
- module2.js

運(yùn)行結(jié)果

瀏覽器中運(yùn)行ensure/index.html,控制臺(tái)輸出:

aaa
module2
bbb
module1

require-ensure-chunk

源代碼

webpack.config.ensure.chunk.js

var path = require("path");
module.exports = {
  entry: "./example.ensur.chunk.js",
  output: {
    path: path.join(__dirname, "ensure-chunk"),
    filename: "[name].bundle.js",
    chunkFilename: "[name].chunk.js"
  }
};

example.ensur.chunk.js

require.ensure(["./module1"], function(require) {
  console.log("aaa");
  require("./module1");
  console.log("bbb");
}, 'common');

require.ensure(["./module2"], function(require) {
  console.log("ccc");
  require("./module2");
  console.log("ddd");
}, 'common');

module1.js
同上

module2.js
同上

構(gòu)建結(jié)果

命令行中運(yùn)行webpack --config webpack.config.ensure.js
- main.bundle.js
- example.amd.js
- 1.chunk.js
- module1.js
- module2.js

運(yùn)行結(jié)果

瀏覽器中運(yùn)行ensure/index.html,控制臺(tái)輸出:

aaa
module1
bbb
ccc
1module2
ddd

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

  • js字符串倒序的實(shí)例代碼

    js字符串倒序的實(shí)例代碼

    這篇文章主要介紹了js字符串倒序的實(shí)例代碼,代碼分為3部分,給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • 由JavaScript中call()方法引發(fā)的對(duì)面向?qū)ο罄^承機(jī)制call的思考

    由JavaScript中call()方法引發(fā)的對(duì)面向?qū)ο罄^承機(jī)制call的思考

    看到這里的call()方法,以前也看過(guò)手冊(cè),說(shuō)是對(duì)象冒充的,用于繼承的。在jQuery源碼里有點(diǎn)亂,所以就把這部分提取出來(lái),放在一個(gè)單獨(dú)文件中,來(lái)看看具體執(zhí)行。
    2011-09-09
  • CryptoJS中AES實(shí)現(xiàn)前后端通用加解密技術(shù)

    CryptoJS中AES實(shí)現(xiàn)前后端通用加解密技術(shù)

    這篇文章主要為大家詳細(xì)介紹了CryptoJS中AES實(shí)現(xiàn)前后端通用加解密技術(shù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • JS+canvas五子棋人機(jī)對(duì)戰(zhàn)實(shí)現(xiàn)步驟詳解

    JS+canvas五子棋人機(jī)對(duì)戰(zhàn)實(shí)現(xiàn)步驟詳解

    這篇文章主要介紹了JS+canvas五子棋人機(jī)對(duì)戰(zhàn)實(shí)現(xiàn)步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • jQuery多項(xiàng)選項(xiàng)卡的實(shí)現(xiàn)思路附樣式及代碼

    jQuery多項(xiàng)選項(xiàng)卡的實(shí)現(xiàn)思路附樣式及代碼

    這篇文章主要介紹了jQuery多項(xiàng)選項(xiàng)卡的實(shí)現(xiàn)思路,需要的朋友可以參考下
    2014-06-06
  • js實(shí)現(xiàn)的折疊導(dǎo)航示例

    js實(shí)現(xiàn)的折疊導(dǎo)航示例

    折疊導(dǎo)航的實(shí)現(xiàn)方法有很多,在文本為大家介紹下如何使用js實(shí)現(xiàn)的折疊導(dǎo)航,感興趣的朋友可以參考下
    2013-11-11
  • 用javascript為頁(yè)面添加天氣顯示實(shí)現(xiàn)思路及代碼

    用javascript為頁(yè)面添加天氣顯示實(shí)現(xiàn)思路及代碼

    為頁(yè)面添加天氣顯示的方法有很多,在本文為大家介紹下使用js來(lái)輕松實(shí)現(xiàn),具體的代碼如下,感興趣的朋友不要錯(cuò)過(guò)
    2013-12-12
  • JavaScript條件判斷_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    JavaScript條件判斷_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    JavaScript使用if () { ... } else { ... }來(lái)進(jìn)行條件判斷。下通過(guò)語(yǔ)句代碼給大家詳細(xì)介紹js 條件判斷的基本知識(shí),需要的的朋友參考下吧
    2017-06-06
  • 基于JavaScript實(shí)現(xiàn)電子簽名功能

    基于JavaScript實(shí)現(xiàn)電子簽名功能

    這篇文章主要為大家詳細(xì)介紹了如何通過(guò)JavaScript實(shí)現(xiàn)簡(jiǎn)單的電子簽名功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-11-11
  • 最新評(píng)論