一、包與 NPM
- 包Nodejs 中除了它自己提供的核心子產品外,我們可以自定義子產品,也可以使用第三方的 子產品。Nodejs 中第三方子產品由包組成,可以通過包來對一組具有互相依賴關系的子產品進行 統一管理。
完全符合 CommonJs 規範的包目錄一般包含如下這些檔案。
- package.json :包描述檔案。
- bin :用于存放可執行二進制檔案的目錄。
- lib :用于存放 JavaScript 代碼的目錄。
- doc :用于存放文檔的目錄。
在 NodeJs 中通過 NPM 指令來下載下傳第三方的子產品(包):
例如:
https://www.npmjs.com/package/silly-datetime
npm i silly-datetime –save
var sd = require('silly-datetime');
sd.format(new Date(), 'YYYY-MM-DD HH:mm');
二、 NPM 介紹
npm 是世界上最大的開放源代碼的生态系統。我們可以通過 npm 下載下傳各種各樣的包, 這些源代碼(包)我們可以在 https://www.npmjs.com 找到。
npm 是随同 NodeJS 一起安裝的包管理工具,能解決 NodeJS 代碼部署上的很多問題,
常見的使用場景有以下幾種:
- 允許使用者從 NPM 伺服器下載下傳别人編寫的第三方包到本地使用。(silly-datetime)
- 允許使用者從 NPM 伺服器下載下傳并安裝别人編寫的指令行程式(工具)到本地使用。 (supervisor)
- 允許使用者将自己編寫的包或指令行程式上傳到 NPM 伺服器供别人使用。
三、NPM 指令詳解。
- npm -v 檢視 npm 版本
- 使用 npm 指令安裝子產品
npm install Module Name
如安裝 jq 子產品:
npm install jquery
- npm uninstall moudleName 解除安裝子產品
npm uninstall ModuleName
- npm list 檢視目前目錄下已安裝的 node 包
npm list
- npm info jquery 檢視 jquery 的版本
npm info 子產品 //檢視子產品的版本
- 指定版本安裝
npm install [email protected]
四、package.json
package.json定義了這個項目所需要的各種子產品,以及項目的配置資訊(比如名稱、版本、 許可證等中繼資料)
1、建立 package.json
npm init 或者 npm init –yes
2、package.json 檔案
{
"name": "demo6",
"version": "1.0.0",
"description": "",
"main": "02-第三方包mkdirp.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"mkdirp": "^1.0.4"
}
}
3、安裝子產品并把子產品寫入 package.json(依賴)
npm install babel-cli --save-dev
npm install 子產品 --save
npm install 子產品 --save-dev
4、dependencies 與 devDependencies 之間的差別?
使用 npm install node_module –save 自動更新 dependencies 字段值;
使用 npm install node_module –save-dev 自動更新 devDependencies 字段值;
dependencie 配置目前程式所依賴的其他包。
devDependencie 配置目前程式所依賴的其他包,比如一些工具之類的配置在這裡
"dependencies": {
"ejs": "^2.3.4",
"express": "^4.13.3",
"formidable": "^1.0.17"
}
^表示第一位版本号不變,後面兩位取最新的
~表示前兩位不變,最後一個取最新
*表示全部取最新
五、安裝淘寶鏡像
http://www.npmjs.org npm 包官網
https://npm.taobao.org/ 淘寶 npm 鏡像官網
淘寶 NPM 鏡像是一個完整 npmjs.org 鏡像,你可以用此代替官方版本(隻讀),同步頻 率目前為 10 分鐘 一次以保證盡量與官方服務同步。
我們可以使用我們定制的 cnpm (gzip 壓縮支援) 指令行工具代替預設的 npm:
npm install -g cnpm --registry=https://registry.npm.taobao.org