目錄
什么是模塊化?
為什么要使用模塊化?
模塊化的規范
CommonJS模塊化規范
nodeJS有三種型別的模塊
什么是包
為什么需要包
npm 安裝包
什么是模塊化?
一個js檔案中可以參考另一個js檔案中的資料;
(這個特點是很基礎的要求,只要是js語言都有,但是js沒有(因此在15年之前,多個js都只能放在一個html檔案,而不能互相參考));
2015年之后推出了es6,因此在語法層面js支持模塊化,但瀏覽器不支持,所以前面在學習傳統開發時,還是將多個js放在一個html檔案;
針對瀏覽器不支持這一問題,我們可以有如下解決辦法:
- 先用開發工具(**webpack**)搭建一個支持模塊化的環境
- 在這個環境中寫模塊化的代碼
- 用工具**打包**代碼,然后在瀏覽器中運行
為什么要使用模塊化?
- 提高了代碼的可復用性;
- 提高了代碼的可維護性;
- 可以實作按需加載;
模塊化的規范
大家都遵守同樣的模塊化規范寫代碼,降低了溝通的成本,極大方便了各個模塊之間的相互呼叫,利人利己
-
CommonJS 規范:nodejs中遵守的就是commonjs規范,
-
ES6 模塊化規范:(前后端通用的模塊化規范;Node.js、Vue、React 中都能使用!)
-
CMD 和 AMD 模塊化規范(較少使用): CMD--sea.js, AMD-require.js
-
UMD 叫做通用模塊定義規范(Universal Module Definition),它可以通過運行時或者編譯時讓同一個代碼模塊在使用 CommonJs、CMD 甚至是 AMD 的專案中運行,它沒有自己專有的規范,是集結了 CommonJs、CMD、AMD 的規范于一身,
CommonJS模塊化規范
- 每個模塊內部,`module` 變數代表當前模塊;
- `module` 變數是一個物件,它的 `exports` 屬性(即 `module.exports`)是對外的介面;
- 加載某個模塊,其實是加載該模塊的 `module.exports` 屬性,require() 方法用于加載模塊;
nodeJS有三種型別的模塊
內置模塊(內置模塊是由 Node.js 官方提供的,例如 fs、path、http 等)
// 加載內置的 fs 模塊
const fs = require('fs')
自定義模塊(用戶創建的每個 .js 檔案,都是自定義模塊)
// 加載用戶的自定義模塊
const con = require('./con.js') // 實際就是引入自己創建的js檔案
匯入:require
匯出:module.exports ; exports
第三方模塊 -- 包(由第三方開發出來的模塊,并非官方提供的內置模塊,也不是用戶創建的自定義模塊,使用前需要先下載)
// 加載第三方模塊
const moment = require('moment')
注意事項一:使用require()方法加載其他模塊時,會執行被加載模塊中的代碼;
// 加載模塊.js require('./被加載的模塊.js')// 被加載模塊.js console.log('我會被列印')
注意事項二:在使用require加載用戶自定義模塊期間,可以省略 .js 后綴
// 加載模塊.js require('./被加載的模塊')
什么是包
nodeJs中的第三方模塊又叫包;
為什么需要包
為了使代碼開發時效率更高;
- 由于
Node.js的內置模塊僅提供了一些底層的API,導致在基于內置模塊進行專案開發的時,效率很低;- 包是基于內置模塊封裝出來的,提供了更高級、更方便的
API,極大的提高了開發效率;- 包和內置模塊之間的關系,類似于
jQuery和 瀏覽器內置API之間的關系;
npm 安裝包
下載包:npm
(npm是隨著node一起被裝進電腦里的,可以在終端運行 npm -v 查看版本號)
npm i 包名——安裝一個包
npm i 包名1 包名2——安裝多個包
npm i 包名1@版本號——安裝包的指定版本
npm i——根據package.json來更新(安裝,洗掉,更新版本號)所有的包
npm uninstall 包的完整名稱
轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/306257.html
標籤:其他
上一篇:nodejs中的模塊化
下一篇:光速上手,教你上傳自己的npm包
