亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

簡介

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

require-amd

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

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

參數(shù)

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

require-ensure

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

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

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

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

注意點(diǎn):requi.ensure的模塊只會被下載下來,不會被執(zhí)行,只有在回調(diào)函數(shù)使用require(模塊名)后,這個模塊才會被執(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,控制臺輸出:

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,控制臺輸出:

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,控制臺輸出:

aaa
module1
bbb
ccc
1module2
ddd

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

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

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

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

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

    看到這里的call()方法,以前也看過手冊,說是對象冒充的,用于繼承的。在jQuery源碼里有點(diǎn)亂,所以就把這部分提取出來,放在一個單獨(dú)文件中,來看看具體執(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ī)對戰(zhàn)實(shí)現(xiàn)步驟詳解

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

    這篇文章主要介紹了JS+canvas五子棋人機(jī)對戰(zhàn)實(shí)現(xiàn)步驟詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(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為頁面添加天氣顯示實(shí)現(xiàn)思路及代碼

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

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

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

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

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

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