NPM是什麼
NPM的全稱是Node Package Manager,是隨同NodeJS一起安裝的包管理和分發工具,它很方便讓JavaScript開發者下載、安裝、上傳以及管理已經安裝的包。
-
npm通常是和node.js一起安裝的
-
npm,node package manager,是 Node 的模塊管理器,功能極其強大。它是 Node 獲得成功的重要原因之一。
隨着一系列基於nodes的應用/工具的出現,工作中與nodejs打交道的機會越來越多。無論在node應用的開發,還是使用中,包管理都扮演着一個很重要的作用。
NPM出現背景
我們經常需要去下載一些資源,一般的做法是去相應的官網上下載。例如jquery,就去jquery的官網,zepto就去zepto的官網去下載,這樣很麻煩。我們需要有一個地方,可以下載全部的資源。
一個直觀的想法,就是去建立一下網站,讓所有的公司都把自己的軟件上傳上來,這樣,用戶就可以去下載了,就不用到處找官網。
它提供npm這個工具:
你可以上傳自己的代碼。
你可以下載別人的代碼。
約定標準的文件組織結構
NPM 運行方式
在安裝node.js的同時,npm就已經被安裝了。你可以在任何的cmd窗口去運行npm相關命令
NPM命令
npm -v 查看npm版本號
npm init 初始化npm
使用淘寶 NPM 鏡像
大家都知道國內直接使用 npm 的官方鏡像是非常慢的,這裏推薦使用淘寶 NPM 鏡像。
淘寶 NPM 鏡像是一個完整 npmjs.org 鏡像,你可以用此代替官方版本(只讀),同步頻率目前爲 10分鐘 一次以保證儘量與官方服務同步。
你可以使用淘寶定製的 cnpm (gzip 壓縮支持) 命令行工具代替默認的 npm:
npm install -g cnpm --registry=https://registry.npm.taobao.org
這樣就可以使用 cnpm 命令來安裝模塊了:
cnpm install [name]
包(package)中在根目錄下必須一定要有一個package.json文件
init這個命令就可以幫助在當前目錄下自動創建這個package.json這個文件。
選項的說明:
- name: package的名字 (必須)
- version: package的版本 (必須)
- description: 包的描述
- author: 包的作者姓名
- main: 包的入口文件
- dependencies: package的應用依賴模塊
- devDependencies: package的開發依賴模塊
- scripts: 屬性是一個對象,裏邊指定了項目的生命週期個各個環節需要執行的命令。
NPM 常用命令
命令 | 描述 |
---|---|
npm -v | 查看NPM版本 |
npm version | 查看所有模塊版本 |
npm search 包名/部分包名 | 搜索包 |
npm init / npm init --yes / npm init -y | 初始化package.json文件 |
npm install/i 包名 | 安裝包 |
npm install 包名@版本號 | 安裝指定版本的包 |
npm update 包名 | 更新包 |
npm remove / r / uninstall 包名 | 刪除包 |
npm install/i 包名 --save/S | 安裝包並添加到依賴中 |
npm install | 根據package.json下載當前項目依賴的包 |
npm list -g --depth 0 | 查看全局安裝過的包 |
npm root -g | 查看全局安裝的包的保存目錄 |
npm install 包名1 包名2 | 同時安裝多個包(包名之間空格) |
npm config list | 查看當前的npm配置項 |
-g 是全局安裝:安裝之後,在任意目錄下,打開cdm窗口你都可以使用
npm install 包名 -g
命令會安裝在生產環境依賴
會修改package.json。會在package.json的dependencies屬性下添加記錄
運行npm install命令時,會自動安裝包到node_modules目錄中
npm install 包名 || npm install 包名 --save || -S
下載開發環境依賴
會修改package.json。會在package.json的devDependencies屬性下添加記錄
運行npm install命令時,會自動安裝包到node_modules目錄中
npm install 包名 --save-dev || -D
刪除包
可能修改package.json.如果你安裝時修改了這個文件,則刪除時會去掉依賴項。
刪除Node_modules下面對應文件
npm remove / r / uninstall 包名 | 刪除包 |
查看當前的npm配置項
npm config list
npm i package -g可以讓你的包下載npm root -g所指向的系統默認路徑裏,該路徑被稱之爲全局路徑,但是這並不能讓你的包被全局訪問到,如果想全局訪問到第三方包,則必須配置NODE_PATH環境變量
全局安裝與本地安裝
npm 的包安裝分爲
- 本地安裝(local)
- 全局安裝(global)
從敲的命令行來看,差別只是有沒有 -g 而已,比如
npm install express //本地安裝
npm install express -g // 全局安裝
(1) 本地安裝:
將安裝包放在 ./node_modules 下(運行 npm 命令時所在的目錄),如果沒有 node_modules 目錄,會在當前執行 npm 命令的目錄下生成 node_modules 目錄。
可以通過 require() 來引入本地安裝的包。
(2) 全局安裝:
將安裝包放在 /user/local 下或者你 node 的安裝目錄。
可以直接在命令行裏使用。
自定義路徑 (瞭解)
> npm config set prefix <指定npm 全局安裝包的存放路徑>
> npm config set cache <指定npm 下包的緩存路徑>