国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > JavaScript > 正文

詳解webpack模塊化管理和打包工具

2024-05-06 15:19:50
字體:
來源:轉載
供稿:網友

本篇文章主要介紹了詳解webpack模塊化管理和打包工具,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

Webpack簡介

webpack是當下最熱門的前端資源模塊化管理和打包工具。 它可以將許多松散的模塊按照依賴和規則打包成符合生產環境部署的前端資源。還可以將按需加載的模塊進行代碼分隔,等到實際

需要的時候再異步加載。通過 loader  的轉換,任何形式的資源都可以視作模塊,比如 CommonJs 模塊、 AMD 模塊、 ES6 模塊、CSS、圖片、 JSON、Coffeescript、 LESS 等。

模塊系統的演進<script>標簽

<script src="module1.js"></script><script src="module2.js"></script><script src="libraryA.js"></script><script src="module3.js"></script>

這是最原始的 JavaScript 文件加載方式,如果把每一個文件看做是一個模塊,那么他們的接口通常是暴露在全局作用域下,也就是定義在 window  對象中,

不同模塊的接口調用都是一個作用域中,一些復雜的框架,會使用命名空間的概念來組織這些模塊的接口,典型的例子如 YUI  庫。

這種原始的加載方式暴露了一些顯而易見的弊端:

    全局作用域下容易造成變量沖突 文件只能按照   <script>  的書寫順序進行加載 開發人員必須主觀解決模塊和代碼庫的依賴關系 在大型項目中各種資源難以管理,長期積累的問題導致代碼庫混亂不堪

CommonJS規范

CommonJS 是以在瀏覽器環境之外構建 JavaScript 生態系統為目標而產生的項目,比如在服務器和桌面環境中。

CommonJS 規范是為了解決 JavaScript 的作用域問題而定義的模塊形式,可以使每個模塊它自身的命名空間中執行。該規范的主要內容是,模塊必須通過 module.exports  導出對外的變量 或接口,通過   require()  來導入其他模塊的輸出到當前模塊作用域中。

一個直觀的例子

// moduleA.jsmodule.exports = function( value ){  return value * 2;}// moduleB.jsvar multiplyBy2 = require('./moduleA');var result = multiplyBy2(4);

AMD規范

AMD(異步模塊定義)是為瀏覽器環境設計的,因為 CommonJS 模塊系統是同步加載的,當前瀏覽器環境還沒有準備好同步加載模塊的條件。

模塊通過 define  函數定義在閉包中,格式如下:

define(id?: String, dependencies?: String[], factory: Function|Object);

id  是模塊的名字,它是可選的參數。

factory  是最后一個參數,它包裹了模塊的具體實現,它是一個函數或者對象。如果是函數,那么它的返回值就是模塊的輸出接口或值。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 丰台区| 离岛区| 木兰县| 肇源县| 阳城县| 辉南县| 竹山县| 新巴尔虎左旗| 武川县| 高邑县| 新龙县| 临沭县| 高碑店市| 庆阳市| 海伦市| 藁城市| 新乐市| 玉林市| 临颍县| 宁都县| 黄骅市| 比如县| 双鸭山市| 蓝山县| 观塘区| 山西省| 广平县| 偏关县| 社会| 房山区| 江口县| 南木林县| 镶黄旗| 洛扎县| 大足县| 邹平县| 洱源县| 安新县| 靖安县| 乐山市| 宽甸|