模組與包管理工具

2022-06-16 07:54:07 字數 1837 閱讀 5752

@模組與包管理工具

js的天生缺陷——缺少模組化管理機制

·表現》 js中容易出現變數被覆蓋,方法被替代的情況(既被汙染)。特別是存在依賴關係時,容易出現錯誤。

這是因為js缺少模組管理機制,來隔離實現各種不同功能的js判斷,避免它們相互汙染。

·解決》 經常採用命名空間的方式,把變數和函式限制在某個特定的作用域內,人肉約定一套命名規範來限制**,

保證**安全執行。jquery中有許多變數和方法,但是無法直接訪問,必須通過jquery,$呼叫 各個方法。

【commonjs規範】

不同於jquery,commonjs是一套規範,約定了js如何組織,如何編寫,包括包,二進位制,套接字,單元測試等等。

大部分標準在擬定和討論之中,首先把執行不同任務的**塊和**檔案看為獨立的模組,每乙個模組都是乙個單獨的作用域,

但不是孤立的,可能存在依賴關係。每個模組分為三個部分,定義、標識和引用。這套規範與現實產品如node.js相互影響,良性迴圈。

【nodejs的模組管理機制】

基於commonjs實現了模組管理系統。node中每乙個js檔案都是乙個獨立的模組,在其內部不需要有命名空間,

不需要擔心變數的汙染和方法定義時的隔離。同時模組之間可以組合形成更強大的模組或功能包。npm即是用來管理各種功能包的

amd只需引用最後乙個.js,其中引用自己的引用就好了

define (['./依賴的.js'],function())

node.js中

@模組的分類

模組型別分為三類:

=>核心模組

=>檔案模組

=>第三方模組

在nodejs中檔案和模組是一一對應的

引用模組的方式 1用檔案路徑引用 2用模組名來引用

如果用名稱引用非核心模組的話 node就會把模組名對映到對應模組名的路徑 包含了核心函式的模組會在node啟動時預先載入 非核心模組就是使用npm安裝的第三方模組 或者其他人建立的模組

exports 就是require獲取的物件

模組的流程:

建立模組、匯出模組、載入模組、使用模組;

module.exports和export區別:

module.exports = add;特別的物件型別;(推薦使用,支援現有)

exports.add = add;傳統的模組例項;(exports是輔助方法)

module.exports最終返回給呼叫者;

exports掛載屬性和方法,然後把屬性賦給module.exports;

ndoejs主要就是把專案變成模組化在管理 第一步先建立模組 然後匯出模組 然後在載入模組 最後在使用模組

建立模組也是入口的js檔案 裡面有特定的功能 匯出模組就是把功能和模組名建立關係 載入模組就是在其它檔案裡引入並且載入這模組

在ndoe裡使用reqiure來完成這個工作 也就是用模組名來引用模組 然後會把模組影射到對應的模組路徑 最後就是使用模組 直接呼叫模組中設定好的方法 

exports物件用來將屬性方法公開 可以讓其它模組呼叫 require可以匯入exports公開的方法 這樣就算是匯入乙個模組的 並且是獨立的 無需擔心其它的錯誤

module.exports是支援存在的東西 是特寫的物件型別 exports是module.exports的幅度方法 module.exports是給呼叫著 exports上掛著屬性和方法

最後再把屬性方法給module.exports 如果module.exports已經有熟悉方法的話 exports就會被忽略

amd用於需要非同步載入js的情況

commonjs是同步載入js用於有構建工具時

NodeJS 二 模組與包管理工具

node 應用由模組組成,採用 commonjs 模組規範。commonjs 就是模組化的標準,nodejs 就是 commonjs 模組化 的實現。檔案模組 第三方模組 資料夾模組 資料夾模組的例子 c om monj s no dejs 中自定 義模組的 規定 color common js n...

包管理工具

參考 yum和apt get的區別 rpm命令詳解及和yum之間的關係 centos中rpm和yum到底有什麼區別?dpkg和apt get區別 dpkg 常用指令操作快速參考 yum和apt get常用命令 linux分類 一般著名的linux系統基本分成兩大類 1 redhat系列 redhat...

Python 包管理工具

如圖,可以看到distribute是setuptools的取代,pip是easy install的取代。核心目的是發布,即打包 生成安裝檔案等。disutils setuptools distribute python自帶模組,用於打包 生成安裝檔案 安裝包,需借助setup.py指令碼。distu...