天天看點

Nodejs 中的包、npm 、第三方子產品、 package.json 以及 cnpm

一、包與 NPM

  1. 包Nodejs 中除了它自己提供的核心子產品外,我們可以自定義子產品,也可以使用第三方的 子產品。Nodejs 中第三方子產品由包組成,可以通過包來對一組具有互相依賴關系的子產品進行 統一管理。
    Nodejs 中的包、npm 、第三方子產品、 package.json 以及 cnpm

完全符合 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 指令詳解。

  1. npm -v 檢視 npm 版本
  2. 使用 npm 指令安裝子產品
npm install Module Name 

如安裝 jq 子產品:
npm install jquery
           
  1. npm uninstall moudleName 解除安裝子產品
npm uninstall ModuleName
           
  1. npm list 檢視目前目錄下已安裝的 node 包
npm list
           
  1. npm info jquery 檢視 jquery 的版本
npm info 子產品 //檢視子產品的版本
           
  1. 指定版本安裝

    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
           

繼續閱讀