npm是nodejs的包管理工具,所謂包管理工具就是對各類包和工具進行 安裝,卸載,更新,查看,搜索,發佈等操做的工具。就像咱們電腦上的電腦管家,管理各類軟件的安裝,卸載,升級等。
使用npm咱們能夠很是輕鬆的管理各類包,並且諸多前端開發的工具諸如WebPack、Grunt等都是依賴於nodeJS的,這些工具的安裝、使用都要經過npm。 咱們開發中用到的一些開源類庫如jquery、bootstrap等均可以經過npm來下載和管理。 因此說,學會npm的使用對前端開發尤其重要前端
只用安裝了nodeJS,npm就一塊兒被安裝了。
https://nodejs.org/en/download/ 下載地址
打開命令行工具(window下是cmd)
運行vue
npm -v
若是顯示了npm的版本號,證實已經安裝成功node
須要注意的是,使用npm的時候,通常先進入到項目目錄中(命令號cd命令進入),下載的包會放在項目目錄下的node_modules目錄下(該目錄會自動生成),跟我一塊兒安裝幾個包。jquery
npm install jquery #安裝jquery
在你的項目目錄下就會生成一個node_modules目錄,該目錄下就有了jquery。 你能夠多安裝幾個包git
npm install bootstrap #安裝bootstrap npm install angular #安裝angular npm install vue #安裝vue
你會發現你的node_modules目錄下就多了不少個目錄github
npm list #該命令能夠查看安裝的包的列表 npm list 包名 #能夠查看具體的包的信息(版本號)
若是你不肯定包名的話你能夠搜索npm
npm search jquery #搜索名字裏有"jquery"的包
若是想查看包的相關信息json
npm info bootstrap #查看bootstrap的信息,不論包是否安裝均可以查看
固然,安裝某個包的時候也能夠制定包的版本號bootstrap
npm install jquery@1.12.4 #安裝jquery-1.12.4
若是須要對已經安裝的包進行更新服務器
npm update 包名
若是要卸載已經安裝的包
npm uninstall 包名
上面咱們安裝的包都是安裝在了項目目錄中, 若是安裝的是命令行工具只能進入(cd)到項目目錄中才能使用,npm也能夠進行全局安裝,npm能夠進行全局的安裝、卸載、升級,只有加上 "-g"
npm install 包名 -g
這樣的安裝的包是全局的,不會安裝在項目目錄的node_modules裏,而是安裝在全局目錄中
npm config list #查看npm的配置, 其中配置項 prefix 就是全局安裝目錄
也能夠
npm config get prefix #直接查看配置項prefix (全局安裝目錄)
固然
npm config set prefix 路徑 #設置npm的全局安裝目錄
通常狀況下,若是安裝的包或工具只是本項目用到的,咱們不須要全局安裝, 若是包是好多項目用到的,主要是一些前端工具(Grunt Glup WebPack 等)能夠全局安裝
咱們能夠在項目目錄下建立一個pageage.json文件,來寫上本項目的一些介紹以及用到了那些包,pageage.json文件的主要內容以下
{ "name": "myapp", //package名字(自定義) "version": "1.0.0", //package的版本(自定義) "description": "", //描述(自定義) "main": "main.js", //主入口文件(自定義) "dependencies": { //package的應用依賴模塊,及別人要使用這個package,至少須要安裝哪些東西。 "jquery": "1.8.3", //bootstrap 版本號1.8.3 "bootstrap":"*", //bootstrap 版本號最新 "angular":"^1.6.2" //angular 朱版本號是1的最新版 }, "author": "lin", //做者 "license": "ISC" //受權 }
這裏面,較爲重要是dependencies依賴,它告訴咱們搞項目所須要的依賴(也就是用了哪些包)。 通常狀況下,咱們寫完項目發佈的時候(如傳到github上),咱們不會上傳npm_modules這個目錄, 別人拿到咱們的項目文件,cd到項目目錄執行
npm install
npm會根據pageage.json中dependencies中的設置把相關的包都下載下來。
pageage.json這個文件通常不須要咱們手工建立,咱們在項目目錄中運行
npm init
根據提示,輸入內容(author description等信息 ),package.json就自動建立好了
在安裝包時候添加 --save 會自動把包添加到 package.json的依賴中
npm install jquery --save
固然,卸載該包的時候,也要添加--save才能從依賴中移除,不然包是卸載了,但package.json中仍然有,
npm uninstall jquery --save
咱們注意到,在pageage.json中的dependencies中依賴的包的版本前面有 "^","~"等符號,這些符號都是什麼意思呢?
> 1.1.1 版本必須必1.1.1大
>= 1.1.1 版本>=1.1.1
< 1.1.1
<= 1.1.1
~1.1.1 安裝1.1.x 的最新版本 好比~1.2.2,表示安裝1.2.x的最新版本(不低於1.2.2),可是不安裝1.3.x,也就是說安裝時不改變大版本號和次要版本號
^1.1.1 安裝1.x.x 的最新版本 好比ˆ1.2.2,表示安裝1.x.x的最新版本(不低於1.2.2),可是不安裝2.x.x,也就是說安裝時不改變大版本號。
注意,關於版本號,如 jquery-1.12.4
1 是主版本號 用於不兼容的API修復
12 是副版本號或次版本號 用於向下兼容的功能性修復
4 是補丁版本號 用於向下兼容的bug修復
npm下載的包都是來自一個站點(就像一個下載站),因爲服務器在國外,有時速度會較慢,甚至在某些敏感時期,你懂得。
npm config get registry
能夠查看當前npm所使用的鏡像地址 默認是 https://registry.npmjs.org/
咱們能夠改爲淘寶的npm鏡像 參考 https://npm.taobao.org/
(完)