鍍金池/ 教程/ HTML/ Node.js npm
Node.js快速入門
Node.js事件發(fā)射器
Node.js包(JXcore)
Node.js事件循環(huán)
Node.js文件系統(tǒng)
Node.js npm
Node.js安裝和入門
Node.js工具模塊
Node.js回調(diào)概念
Node.js流
Node.js入門實例程序
Node.js教程
Node.js規(guī)范化應用
Node.js REPL終端
Node.js緩沖器
Node.js RESTful API
Node.js全局對象
Linux安裝Node.js(源碼編譯安裝)
Node.js Web模塊
Node.js Express框架

Node.js npm

Node程序包管理器(NPM)提供了以下兩個主要功能:

  • 在線存儲庫的Node.js包/模塊,可搜索 search.nodejs.org

  • 命令行實用程序來安裝Node.js的包,做版本管理和Node.js包依賴管理。

NPM捆綁v0.6.3版本在一起以后,Node.js可直接安裝。為了驗證一致性,打開控制臺,然后輸入以下命令,看到的結(jié)果:

$ npm --version
2.7.1

如果您正在運行舊版本npm,那么可以將其更新到最新版本。只要從root使用以下命令:

$ sudo npm install npm -g
/usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js
npm@2.7.1 /usr/lib/node_modules/npm

使用NPM安裝模塊

有一個簡單安裝任何Node.js模塊,語法如下:

$ npm install <Module Name>

例如,下面是安裝一個著名的Node.jsweb框架模塊的命令叫 express:

$ npm install express

現(xiàn)在,你可以在js文件中使用此模塊如下:

var express = require('express');

全局VS本地安裝

默認情況下,NPM安裝任何依賴在本地模式。在這里,本地模式是指包安裝在node_modules目錄位于的地方節(jié)點應用程序存在的文件夾中。本地部署的包都可以通過 require()方法進行訪問。例如,當我們安裝Express模塊,它安裝Express模塊當前目錄中創(chuàng)建node_modules目錄。

$ ls -l
total 0
drwxr-xr-x 3 root root 20 Mar 17 02:23 node_modules

另外,您可以使用npm ls命令列出了所有本地安裝的模塊。

全局范圍內(nèi)已安裝的軟件包/依賴性都存儲在系統(tǒng)目錄中。這種依賴關(guān)系可以在任何Node.js的CLI(命令行界面)功能可以使用,但不能直接使用require()的Node應用程序中導入。 現(xiàn)在,讓我們嘗試使用全局安裝Express模塊。

$ npm install express -g

這將產(chǎn)生類似的結(jié)果,模塊將在全局范圍內(nèi)安裝。在這里,第一行講述了在那里得到安裝模塊版本和它的位置。

express@4.12.2 /usr/lib/node_modules/express
├── merge-descriptors@1.0.0
├── utils-merge@1.0.0
├── cookie-signature@1.0.6
├── methods@1.1.1
├── fresh@0.2.4
├── cookie@0.1.2
├── escape-html@1.0.1
├── range-parser@1.0.2
├── content-type@1.0.1
├── finalhandler@0.3.3
├── vary@1.0.0
├── parseurl@1.3.0
├── content-disposition@0.5.0
├── path-to-regexp@0.1.3
├── depd@1.0.0
├── qs@2.3.3
├── on-finished@2.2.0 (ee-first@1.1.0)
├── etag@1.5.1 (crc@3.2.1)
├── debug@2.1.3 (ms@0.7.0)
├── proxy-addr@1.0.7 (forwarded@0.1.0, ipaddr.js@0.1.9)
├── send@0.12.1 (destroy@1.0.3, ms@0.7.0, mime@1.3.4)
├── serve-static@1.9.2 (send@0.12.2)
├── accepts@1.2.5 (negotiator@0.5.1, mime-types@2.0.10)
└── type-is@1.6.1 (media-typer@0.3.0, mime-types@2.0.10)

您可以使用下面的命令來檢查所有全局安裝的模塊:

$ npm ls -g

使用package.json

package.json是存在于任何Node應用程序/模塊的根目錄和用于定義一個包的屬性。讓我們打開package.json在當前 node_modules/express/

{
  "name": "express",
  "description": "Fast, unopinionated, minimalist web framework",
  "version": "4.11.2",
  "author": {
    "name": "TJ Holowaychuk",
    "email": "tj@vision-media.ca"
  },
  "contributors": [
    {
      "name": "Aaron Heckmann",
      "email": "aaron.heckmann+github@gmail.com"
    },
    {
      "name": "Ciaran Jessup",
      "email": "ciaranj@gmail.com"
    },
    {
      "name": "Douglas Christopher Wilson",
      "email": "doug@somethingdoug.com"
    },
    {
      "name": "Guillermo Rauch",
      "email": "rauchg@gmail.com"
    },
    {
      "name": "Jonathan Ong",
      "email": "me@jongleberry.com"
    },
    {
      "name": "Roman Shtylman",
      "email": "shtylman+expressjs@gmail.com"
    },
    {
      "name": "Young Jae Sim",
      "email": "hanul@hanul.me"
    }
  ],
  "license": "MIT",
  "repository": {
    "type": "git",
    "url": "https://github.com/strongloop/express"
  },
  "homepage": "http://expressjs.com/",
  "keywords": [
    "express",
    "framework",
    "sinatra",
    "web",
    "rest",
    "restful",
    "router",
    "app",
    "api"
  ],
  "dependencies": {
    "accepts": "~1.2.3",
    "content-disposition": "0.5.0",
    "cookie-signature": "1.0.5",
    "debug": "~2.1.1",
    "depd": "~1.0.0",
    "escape-html": "1.0.1",
    "etag": "~1.5.1",
    "finalhandler": "0.3.3",
    "fresh": "0.2.4",
    "media-typer": "0.3.0"下一篇:Node.js工具模塊