NPM是什么?

1、什么是NPM?

NPM(node package manager),通常稱為node包管理器,主要功能就是管理node包,包括:安裝、卸載、更新、查看、搜索、發(fā)布等。NPM是基于couchdb一個數(shù)據(jù)庫,詳細記錄了每個包的信息(作者、版本、依賴、授權(quán)信息等)

NPM官方網(wǎng)站:NPM官方網(wǎng)站

NPM官方文檔:NPM官方文檔

我們需要了解什么?

1、NPM的安裝、卸載、升級、配置

2、NPM的使用:packer的安裝、卸載】升級、查看、搜索、發(fā)布

3、NPM包的安裝:本地安裝 ?、全局安裝

4、package.json:包描述信息

5、package版本:版本說明

NPM安裝

本地安裝:package會被下載到當(dāng)前所在目錄,只能愛當(dāng)前目錄下使用

全局安裝:package會被下載到待定的系統(tǒng)目錄下,安裝的package能在所有目錄下使用

npm install pkg-本地安裝

運行如下命令,就會在當(dāng)前目錄下安裝 grunt-cli (grunt命令行工具)

npm install grunt-cli

安裝結(jié)束后,當(dāng)前目錄下回多出一個 node_modules 目錄,grunt-cli就安裝在里面。同時注意控制臺輸出的信息:

grunt-cli@1.2.0? /Users/user/Desktop/NPM

├─┬ findup-sync@0.3.0

├── grunt-known-options@1.1.0

├─┬ nopt@3.0.6

└── resolve@1.1.7

npmdemo@1.0.0:當(dāng)前安裝的package為grunt-cli,版本是1.2.0

/Users/user/Desktop/NPM:安裝目錄

nopt、resolve、findup-sync:依賴的包有nopt、resolve、findup-sync,它們各自的版本、依賴在后面的括號里列出來

npm install pkg-全局安裝

上面已經(jīng)安裝了grunt-cli,然后你跑到其他目錄下面運行如下命令

grunt

果斷提示你grunt命令不存在,為什么呢?因為上面只是進行了 本地安裝 ,grunt命令只能在對應(yīng)安裝目錄下使用。

Fatal error: Unable to find local grunt.

如果為了使用grunt命令,每到一個目錄下都得重新安裝一次,因此,用全局安裝,很簡單,需要加上參數(shù) -g?

npm install -g grunt-cli

此時控制臺輸入的信息有點不同。主要的區(qū)別在于安裝目錄,現(xiàn)在變成了 /usr/local/lib/node_modules/grunt-cli/bin/grunt,/usr/local/lib,這就是全局安裝

├─┬ findup-sync@0.3.0

├── grunt-known-options@1.1.0

├─┬ nopt@3.0.6

└── resolve@1.1.7

npm包管理

nam的包管理命令使用頻率比較高,安裝、卸載、更新、查看、搜索、發(fā)布等等

安裝最新版本的grunt-cli

npm install grunt-cli

安裝0.1.9版本的grunt-cli

npm install grunt-cli@"0.1.9"

通過package.json進行安裝,如果我們的項目依賴了很多package,一個一個地安裝那將是個體力活。我們可以將項目依賴的包都在package.json這個文件里聲明,然后一行命令搞定

npm install

卸載grunt-cli

npm uninstall grunt-cli

卸載0.1.9版本的grunt-cli

npm uninstall grunt-cli@"0.1.9"

npm ls:查看安裝了哪些包,運行如下命令,就可以查看當(dāng)前目錄安裝了哪些package

npm ls

/Users/user

├─┬ grunt-cli@1.2.0

│ ├─┬ findup-sync@0.3.0

│ │ └─┬ glob@5.0.15

│ │? ├─┬ inflight@1.0.6

│ │? │ └── wrappy@1.0.2

│ │? ├── inherits@2.0.3

│ │? ├─┬ minimatch@3.0.3

│ │? │ └─┬ brace-expansion@1.1.6

│ │? │? ├── balanced-match@0.4.2

│ │? │? └── concat-map@0.0.1

│ │? ├── once@1.4.0

│ │? └── path-is-absolute@1.0.1

│ ├── grunt-known-options@1.1.0

│ ├─┬ nopt@3.0.6

│ │ └── abbrev@1.0.9

│ └── resolve@1.1.7

└─┬ jsdoc@3.4.3

├── bluebird@3.4.6

├─┬ catharsis@0.8.8

│ └─┬ underscore-contrib@0.3.0

│? └── underscore@1.6.0

├── escape-string-regexp@1.0.5

├─┬ espree@3.1.7

│ ├── acorn@3.3.0

│ └── acorn-jsx@3.0.1

├── js2xmlparser@1.0.0

├─┬ klaw@1.3.1

│ └── graceful-fs@4.1.11

├── marked@0.3.6

├─┬ mkdirp@0.5.1

│ └── minimist@0.0.8

├─┬ requizzle@0.2.1

│ └── underscore@1.6.0

├── strip-json-comments@2.0.1

├── taffydb@2.6.2

└── underscore@1.8.3

npm ls pkg:查看特定package的信息,運行如下命令,輸出grunt-cli的信息

npm ls grunt-cli

如果要查看更詳細信息,可以通過 npm info pkg ,輸出的信息非常詳盡,包括作者、版本、依賴等。

npm info grunt-cli

npm search pga:搜索

npm update grunt-cli

npm發(fā)布

這個命令我自己也還沒實際用過,不誤導(dǎo)大家,語法如下,也可參考官方對于package發(fā)布的說明:package發(fā)布

NPM配置

npm的配置工作主要是通過nam config 命令,包含了增、刪、改、查幾個步驟,以proxy為例

關(guān)于package.json

Package.json 屬性說明

name - 包名。

version - 包的版本號。

description - 包的描述。

homepage - 包的官網(wǎng) url 。

author - 包的作者姓名。

contributors - 包的其他貢獻者姓名。

dependencies - 依賴包列表。如果依賴包沒有安裝,npm 會自動將依賴包安裝在 node_module 目錄下。

repository - 包代碼存放的地方的類型,可以是 git 或 svn,git 可在 Github 上。

main - main 字段是一個模塊ID,它是一個指向你程序的主要項目。就是說,如果你包的名字叫 express,然后用戶安裝它,然后require("express")。

keywords - 關(guān)鍵字


最后,簡單地把最常見的命令,以及一些需要了解的內(nèi)容列了出來。如要進一步了解,可參考官網(wǎng)說明。此外, npm help 是我們最好的朋友,如果忘了有哪些命令,命令下有哪些參數(shù),可通過help進行查看。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容