web前端開發(fā)之JavaScript:npm簡介
包簡介

單個js文件就是一個模塊,放文件夾里面就是package。報就是將一組相關(guān)的模塊組合到一起,行程一組完成的工具。CommonJS的包規(guī)范由包結(jié)構(gòu)和包描述文件兩個部分組成。包描述文件用于表達非代碼相關(guān)的信息,它是一個json格式的文件,位于包的根目錄下,是包的重要組成部分。json文件里不能寫注釋。
包實際上就是一個壓縮文件,解壓以后還原為目錄。符合規(guī)范的目錄,應(yīng)該包含如下文件:
-package.json 描述文件
-bin 可執(zhí)行二進制文件
-lib js代碼
-doc 文檔
-test 單元測試
package.json
它位于模塊的目錄下,用于定義包的屬性。該文件中定義了當(dāng)前項目所需要的各種模塊,以及項目的配置信息(比如名稱、版本、許可證等元數(shù)據(jù)?) 。package.json文件就是一個JSON對象,該對象的每一個成員就是當(dāng)前項目的一項設(shè)置。
package.json中的字段???json文件中不能有注釋
------name(包名)、description(描述)、version(版本)、keywords(關(guān)鍵字)、maintainers(主貢獻)、contributors(貢獻者)、bugs(bug地址)、licenses(協(xié)議)、repositories(倉庫git地址)、dependencies(依賴)、homepage(主頁)、os(系統(tǒng))、cpu、engine(引擎)、builtin、directories、implements、scripts、author、bin(可執(zhí)行文件)、main(包的主要的文件)、devDependencies。
NPM簡介
NPM(Node Package Manager),npm幫助node完成第三方模塊的發(fā)布、安裝和依賴。npm是javaScript世界的包管理工具并且是Node.js平臺的默認包管理工具,通過npm可以安裝、共享、分發(fā)代碼,管理項目依賴關(guān)系。簡單來說就是一個個別人寫好的模塊,通過下載引用后,就可以直接使用其API,幫助自己更快的開發(fā),它被集成在node中,安裝node便會自動安裝nom。
常用的命令:
npm -v ?--查看版本
npm
npm search 包名
npm install 包名 --install可以簡寫為i
npm install 包名 -g ?--全局安裝(一般都是一些工具)
npm init ?--初始化命令,會在目錄下創(chuàng)建package.json。
npm version --查看所有模塊的版本
npm remove 包名 --刪除包,可以簡寫為npm r?包名
npm install 包名 --save?--安裝包并添加到依賴中
npm install --下載當(dāng)前項目所依賴的包
npm install 文件路徑 --從本地安裝
npm install 包名 -registry=地址 ?--從鏡像源安裝
npm config set registry 地址 ?--設(shè)置鏡像源
node的安裝分為全局模式和本地模式。一般情況下會以本地模式運行,包會被安裝到Node的安裝目錄下的node_modules下。
全局安裝命令為npm install -g moduleName。或者使用npm set global=true來設(shè)定安裝模式,npm get global可以查看當(dāng)前使用的安裝模式。
示例:npm install express默認會安裝express的最新版本,也可以通過在后面加版本號的方式安裝指定版本,如 npm install express@3.0.6
npm install
通過package.json進行npm安裝
如果我們的項目依賴了很多package,一個一個地安裝那將是個體力活。我們可以將項目依賴的包都在package.json這個文件里聲明,然后一行命令搞定:
npm?install
使用場景
常見的使用場景有以下幾種:
允許用戶從NPM服務(wù)器下載別人編寫的第三方包到本地使用。
允許用戶從NPM服務(wù)器下載并安裝別人編寫的命令行程序到本地使用。
允許用戶將自己編寫的包或命令行程序上傳到NPM服務(wù)器供別人使用。
由于新版的nodejs已經(jīng)集成了npm,所以之前npm也一并安裝好了。同樣可以通過輸入?"npm -v"?來測試是否成功安裝。命令如下,出現(xiàn)版本提示表示安裝成功:
配置CNPM
因為npm的服務(wù)器在國外,在網(wǎng)絡(luò)狀態(tài)不好的情況下引入一個模塊會因為網(wǎng)絡(luò)延遲而失敗,可以使用淘寶的鏡像cnpm,針對npm,淘寶在國內(nèi)鏡像了一份npm包管理工具,可在國內(nèi)直接下載,更快,缺點就是可能無法實時更新
命令行代碼:npm install -g cnpm --registry=https://registry.npm.taobao.org
node搜索包的流程
通過npm下載的包都放到node_modules文件夾中,直接通過包名引入即可使用。如var math = require("math"),然后math.add(x,y)。node在使用模塊名字來引入模塊時,它首先會在當(dāng)前目錄的node_modules中尋找是否含有該模塊-如果有則直接使用,如果沒有則去上一級目錄的node_modules中尋找-如果有則直接使用,如果沒有則再去上一級目錄尋找,直到找到為止,一直到找到磁盤的根目錄,如果依然沒有,則報錯。
書山有路勤為徑,學(xué)海無涯苦作舟。下次見!
npm Node.js
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。
版權(quán)聲明:本文內(nèi)容由網(wǎng)絡(luò)用戶投稿,版權(quán)歸原作者所有,本站不擁有其著作權(quán),亦不承擔(dān)相應(yīng)法律責(zé)任。如果您發(fā)現(xiàn)本站中有涉嫌抄襲或描述失實的內(nèi)容,請聯(lián)系我們jiasou666@gmail.com 處理,核實后本網(wǎng)站將在24小時內(nèi)刪除侵權(quán)內(nèi)容。