0 序
-
nodejs 是執行在伺服器端的js,常用於前端工程師在本地電腦、或生產環境部署除錯或執行前端工程。
-
回想起來,上次使用nodejs,還在5年前做大學畢業設計時,基於前後端分離的實踐(那時,業界正在興起前後端分離的浪潮。當然了,現在的web工程,前後端分離已是預設的技術選擇了)
-
這次重新開始接觸nodejs,是因為接觸到一個開源專案,其前端工程的部署,需要重拾
nodejs
、npm
,有必要溫故下了。 -
本文主要是基於參考文獻(第1/2篇)的筆記類博文(故:1、本文的目標讀者是博主自己;2、原創的智慧財產權參見,本文件的【參考文獻】章節)。
-
本文主要測重在全面系統地從入門、使用方面對nodejs講解以下。因此,不會講得特別深。
-
好了,進入正題。
1 NodeJs 概述
1.1 簡介
-
簡單的說
Node.js
就是執行在服務端的 JavaScript。 -
Node.js
是一個基於Chrome JavaScript
執行時建立的一個平臺。 -
Node.js
是一個事件驅動 I/O 服務端 JavaScript 環境,基於 Google 的 V8 引擎,V8 引擎執行 Javascript 的速度非常快,效能非常好。 -
如果你是一個前端程式設計師,你不懂得像 PHP、Python 或 Ruby 等動態程式語言,然後你想建立自己的服務,那麼 Node.js 是一個非常好的選擇。
-
Node.js 是執行在服務端的 JavaScript,如果你熟悉 Javascript,那麼你將會很容易的學會 Node.js。
-
當然,如果你是後端程式設計師,想部署一些高效能的服務,那麼學習 Node.js 也是一個非常好的選擇。
1.2 檢視版本
我們可以使用以下命令來檢視當前的 Node 版本:
$ node -v
v4.4.3
注意:不同版本間可能是有差異的。
1.3 第1個 Node.js 程式:Hello World!
- 指令碼模式
https://www.runoob.com/try/runcode.php?filename=helloworld&type=nodejs
console.log("Hello World");
儲存該檔案,檔名為 helloworld.js
, 並透過 node 命令
來執行:
node helloworld.js
程式執行後,正常的話,就會在終端輸出: Hello World
- 互動模式
開啟終端,鍵入node
進入命令互動模式,可以輸入一條程式碼語句後立即執行並顯示結果,例如:
$ node
> console.log('Hello World!');
Hello World!
2 Node.js 安裝配置
-
本章節將向大家介紹在
Windows
和Linux
上安裝Node.js
的方法。 -
本安裝教程以
Node.js v4.4.3 LTS
(Long Term Support Edition, 長期支援版本)版本為例。 -
Node.js
安裝包及原始碼下載地址為:https://nodejs.org/en/download
- 你可以根據不同平臺系統選擇你需要的 Node.js 安裝包。
- Node.js 歷史版本下載地址:https://nodejs.org/dist/
注意:
Linux
上安裝 Node.js 需要安裝Python 2.6
或2.7
,不建議安裝 Python 3.0 以上版本。
2.1 Windows 上安裝 Node.js
你可以採用以下兩種方式來安裝。
2.1.1 方式1:Windows 安裝包(.msi) [未親測]
本文例項以 v0.10.26 版本為例,其他版本類似, 安裝步驟:
- 步驟 1 : 雙擊下載後的安裝包 v0.10.26,如下所示:
- 步驟 2 : 點選以上的Run(執行),將出現如下介面:
-
步驟 3 : 勾選接受協議選項,點選 next(下一步) 按鈕:
-
步驟 4: Node.js預設安裝目錄為 "C:\Program Files\nodejs" , 你可以修改目錄,並點選 next(下一步):
-
步驟 5 : 點選樹形圖示來選擇你需要的安裝模式 , 然後點選下一步 next(下一步)
-
步驟6 : 點選 Install(安裝) 開始安裝Node.js。你也可以點選 Back(返回)來修改先前的配置。 然後並點選 next(下一步):
安裝過程:
點選 Finish(完成)按鈕退出安裝嚮導。
檢測PATH
環境變數是否配置了Node.js
:點選開始=>執行=>輸入"cmd
" => 輸入命令"path
",輸出如下結果:
PATH=C:\oraclexe\app\oracle\product\10.2.0\server\bin;C:\Windows\system32;
C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;
c:\python32\python;C:\MinGW\bin;C:\Program Files\GTK2-Runtime\lib;
C:\Program Files\MySQL\MySQL Server 5.5\bin;C:\Program Files\nodejs\;
C:\Users\rg\AppData\Roaming\npm
我們可以看到環境變數中已經包含了C:\Program Files\nodejs\
- 檢查Node.js版本
2.1.2 方式2:Windows 二進位制檔案安裝 (.zip/.exe)
- 安裝包
- 32 位安裝包下載地址 : http://nodejs.org/dist/v0.10.26/node.exe
- 64 位安裝包下載地址 : http://nodejs.org/dist/v0.10.26/x64/node.exe
https://nodejs.org/dist/v20.11.1/node-v20.11.1-win-x64.zip
(解壓即安裝)
- 安裝步驟
- 步驟 1 : 解壓即安裝
解壓目錄 :
D:\Program_Files\nodejs\node-v20.11.1-win-x64
- 步驟 2 : 為
node.exe
/npm.exe
等程式配置環境變數Path
操作步驟:
我的電腦
-(右鍵)屬性-高階系統設定-環境變數-(選擇)Path-
D:\Program_Files\nodejs\node-v20.11.1-win-x64
- 步驟 3 :
cmd
輸入node
或者 雙擊下載的安裝包node.exe
,將出現如下介面 :
點選 Run(執行)按鈕將出現命令列視窗:
- 版本測試
進入node.exe
所在的目錄,如下所示:
如果你獲得以上輸出結果,說明你已經成功安裝了Node.js。
- 進入、退出node命令視窗程序
# 進入 node 程序
node
# 退出 node 程序
process.exit()
2.2 Linux 上安裝 Node.js
2.2.1 方式1:直接使用已編譯好的包
Node 官網已經把 linux 下載版本更改為已編譯好的版本了,我們可以直接下載解壓後使用:
# wget https://nodejs.org/dist/v10.9.0/node-v10.9.0-linux-x64.tar.xz // 下載
# tar xf node-v10.9.0-linux-x64.tar.xz // 解壓
# cd node-v10.9.0-linux-x64/ // 進入解壓目錄
# ./bin/node -v // 執行node命令 檢視版本
v10.9.0
解壓檔案的 bin 目錄底下包含了 node
、npm
等命令,我們可以使用 ln
命令來設定軟連線:
ln -s /usr/software/nodejs/bin/npm /usr/local/bin/
ln -s /usr/software/nodejs/bin/node /usr/local/bin/
2.2.2 方式2:Ubuntu 原始碼安裝 Node.js
以下部分我們將介紹在 Ubuntu Linux 下使用原始碼安裝 Node.js 。 其他的 Linux 系統,如 Centos 等類似如下安裝步驟。
- 在 Github 上獲取 Node.js 原始碼:
$ sudo git clone https://github.com/nodejs/node.git
Cloning into 'node'...
- 修改目錄許可權:
$ sudo chmod -R 755 node
- 使用
./configure
建立編譯檔案,並按照:
$ cd node
$ sudo ./configure
$ sudo make
$ sudo make install
- 檢視 node 版本:
$ node --version
v0.10.25
2.2.3 方式3:Ubuntu apt-get 命令安裝
- 命令格式如下:
sudo apt-get install nodejs
sudo apt-get install npm
2.2.3 方式3:CentOS 下原始碼安裝 Node.js
- 1、下載原始碼
你需要在https://nodejs.org/en/download/下載最新的Nodejs版本,本文以v0.10.24為例:
cd /usr/local/src/
wget http://nodejs.org/dist/v0.10.24/node-v0.10.24.tar.gz
- 2、解壓原始碼
tar zxvf node-v0.10.24.tar.gz
- 3、 編譯安裝
cd node-v0.10.24
./configure --prefix=/usr/local/node/0.10.24
make
make install
- 4、 配置NODE_HOME,進入profile編輯環境變數
vim /etc/profile
設定 nodejs 環境變數,在 export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
一行的上面新增如下內容:
#set for nodejs
export NODE_HOME=/usr/local/node/0.10.24
export PATH=$NODE_HOME/bin:$PATH
:wq
儲存並退出,編譯 /etc/profile
使配置生效
source /etc/profile
- 5、驗證是否安裝配置成功
node -v
輸出 v0.10.24 表示配置成功
npm模組安裝路徑
/usr/local/node/0.10.24/lib/node_modules/
注:Nodejs 官網提供了編譯好的 Linux 二進位制包,你也可以下載下來直接應用。
2.2.5 方式5:Mac OS 上安裝
你可以透過以下兩種方式在 Mac OS 上來安裝 node:
- 1、在官方下載網站下載
pkg
安裝包,直接點選安裝即可。 - 2、使用
brew
命令來安裝:
brew install node
3 基於nodejs快速建立應用
3.0 序
- 如果我們使用 PHP 來編寫後端的程式碼時,需要
Apache
或者Nginx
的HTTP
伺服器,並配上mod_php5
模組和php-cgi
。 - 從這個角度看,整個"接收 HTTP 請求並提供 Web 頁面"的需求就不需要 PHP 來處理。
- 不過對
Node.js
來說,概念完全不一樣了。使用 Node.js 時,我們不僅僅 在實現一個應用,同時還實現了整個 HTTP 伺服器。事實上,我們的 Web 應用以及對應的Web
伺服器(如:Apache Tomcat)基本上是一樣的。 - 在我們建立 Node.js 第一個 "Hello, World!" 應用前,讓我們先了解下 Node.js 應用是由哪幾部分組成的:
require
指令:在 Node.js 中,使用 require 指令來載入和引入模組,引入的模組可以是內建模組,也可以是第三方模組或自定義模組。- 建立伺服器:伺服器可以監聽客戶端的請求,類似於 Apache 、Nginx 等 HTTP 伺服器。
- 接收請求與響應請求 :伺服器很容易建立,客戶端可以使用瀏覽器或終端傳送 HTTP 請求,伺服器接收請求後返回響應資料。
3.1 建立 Node.js 應用
Step1 使用 require 指令來載入和引入模組
- 語法格式如下:
const module = require('module-name');
其中,
module-name
可以是一個檔案路徑(相對或絕對路徑),也可以是一個模組名稱。如果是一個模組名稱,Node.js 會自動從node_modules
目錄中查詢該模組。
require
指令會返回被載入的模組的匯出物件,可以透過該物件來訪問模組中定義的屬性和方法,如果模組中有多個匯出物件,則可以使用解構賦值的方式來獲取它們。
我們使用require
指令來載入http
模組,並將例項化的 HTTP 賦值給變數 http,例項如下:
var http = require("http");
Step2 建立伺服器
- 接下來我們使用
http.createServer()
方法建立伺服器,並使用listen
方法繫結8888
埠。 函式透過request
,response
引數來接收和響應資料。 - 例項如下,在你專案的根目錄下建立一個叫
server.js
的檔案,並寫入以下程式碼:
var http = require('http');
http.createServer(function (request, response) {
// 傳送 HTTP 頭部
// HTTP 狀態值: 200 : OK
// 內容型別: text/plain
response.writeHead(200, {'Content-Type': 'text/plain'});
// 傳送響應資料 "Hello World"
response.end('Hello World\n');
}).listen(8888);
// 終端列印如下資訊
console.log('Server running at http://127.0.0.1:8888/');
以上程式碼我們完成了一個可以工作的 HTTP 伺服器。
- 使用
node
命令執行以上的程式碼:
node server.js
Server running at http://127.0.0.1:8888/
- 瀏覽器訪問
接下來,開啟瀏覽器訪問 http://127.0.0.1:8888/,你會看到一個寫著 "Hello World"的網頁。
分析Node.js 的 HTTP 伺服器:
- 第一行請求(require)Node.js 自帶的 http 模組,並且把它賦值給 http 變數。
- 接下來我們呼叫 http 模組提供的函式: createServer 。這個函式會返回 一個物件,這個物件有一個叫做 listen 的方法,這個方法有一個數值引數, 指定這個 HTTP 伺服器監聽的埠號。
3 NPM
3.1 簡介
NPM
是隨同NodeJS
一起安裝的包管理工具,能解決NodeJS程式碼部署上的很多問題,常見的使用場景有以下幾種:
- 允許使用者從NPM伺服器下載別人編寫的第三方包到本地使用。
- 允許使用者從NPM伺服器下載並安裝別人編寫的命令列程式到本地使用。
- 允許使用者將自己編寫的包或命令列程式上傳到NPM伺服器供別人使用。
- nodejs 與 npm
由於新版的
nodejs
已經整合了npm
,所以之前npm也一併安裝好了。同樣可以透過輸入 "npm -v" 來測試是否成功安裝。命令如下,出現版本提示表示安裝成功:
$ npm -v
2.3.0
- 如果你安裝的是舊版本的 npm,可以很容易得透過 npm 命令來升級,命令如下:
$ sudo npm install npm -g
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
npm@2.14.2 /usr/local/lib/node_modules/npm
如果是 Window 系統使用以下命令即可:
npm install npm -g
使用淘寶映象的命令:
npm install -g cnpm --registry=https://registry.npmmirror.com
3.2 使用 npm 命令安裝模組
- npm 安裝 Node.js 模組語法格式如下:
$ npm install <Module Name>
以下例項,我們使用 npm 命令安裝常用的 Node.js web框架模組 : express:
$ npm install express
安裝好之後,express 包就放在了工程目錄下的 node_modules
目錄中,因此在程式碼中只需要透過 require('express')
的方式就好,無需指定第三方包路徑。
var express = require('express');
3.3 全域性安裝與本地安裝
npm
的包安裝分為本地安裝(local)、全域性安裝(global)兩種,從敲的命令列來看,差別只是有沒有-g而已,比如
npm install express # 本地安裝
npm install express -g # 全域性安裝
如果出現以下錯誤:
npm err! Error: connect ECONNREFUSED 127.0.0.1:8087
解決辦法為:
$ npm config set proxy null
本地安裝
- 將安裝包放在 ./node_modules 下(執行 npm 命令時所在的目錄),如果沒有 node_modules 目錄,會在當前執行 npm 命令的目錄下生成 node_modules 目錄。
- 可以透過 require() 來引入本地安裝的包。
全域性安裝
- 將安裝包放在 /usr/local 下或者你 node 的安裝目錄。
- 可以直接在命令列裡使用。
如果你希望具備兩者功能,則需要在兩個地方安裝它或使用 npm link
。
接下來我們使用全域性方式安裝 express
$ npm install express -g
安裝過程輸出如下內容,第一行輸出了模組的版本號及安裝位置。
express@4.13.3 node_modules/express
├── escape-html@1.0.2
├── range-parser@1.0.2
├── merge-descriptors@1.0.0
├── array-flatten@1.1.1
├── cookie@0.1.3
├── utils-merge@1.0.0
├── parseurl@1.3.0
├── cookie-signature@1.0.6
├── methods@1.1.1
├── fresh@0.3.0
├── vary@1.0.1
├── path-to-regexp@0.1.7
├── content-type@1.0.1
├── etag@1.7.0
├── serve-static@1.10.0
├── content-disposition@0.5.0
├── depd@1.0.1
├── qs@4.0.0
├── finalhandler@0.4.0 (unpipe@1.0.0)
├── on-finished@2.3.0 (ee-first@1.1.1)
├── proxy-addr@1.0.8 (forwarded@0.1.0, ipaddr.js@1.0.1)
├── debug@2.2.0 (ms@0.7.1)
├── type-is@1.6.8 (media-typer@0.3.0, mime-types@2.1.6)
├── accepts@1.2.12 (negotiator@0.5.3, mime-types@2.1.6)
└── send@0.13.0 (destroy@1.0.3, statuses@1.2.1, ms@0.7.1, mime@1.3.4, http-errors@1.3.1)
3.4 檢視安裝資訊
你可以使用以下命令來檢視所有全域性安裝的模組:
$ npm list -g
├─┬ cnpm@4.3.2
│ ├── auto-correct@1.0.0
│ ├── bagpipe@0.3.5
│ ├── colors@1.1.2
│ ├─┬ commander@2.9.0
│ │ └── graceful-readlink@1.0.1
│ ├─┬ cross-spawn@0.2.9
│ │ └── lru-cache@2.7.3
……
如果要檢視某個模組的版本號,可以使用命令如下:
$ npm list grunt
projectName@projectVersion /path/to/project/folder
└── grunt@0.4.1
3.5 使用 package.json
package.json
package.json
位於模組的目錄下,用於定義包的屬性。接下來讓我們來看下 express 包的 package.json 檔案,位於 node_modules/express/package.json
內容:
{
"name": "express",
"description": "Fast, unopinionated, minimalist web framework",
"version": "4.13.3",
"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": "git+https://github.com/strongloop/express.git"
},
"homepage": "http://expressjs.com/",
"keywords": [
"express",
"framework",
"sinatra",
"web",
"rest",
"restful",
"router",
"app",
"api"
],
"dependencies": {
"accepts": "~1.2.12",
"array-flatten": "1.1.1",
"content-disposition": "0.5.0",
"content-type": "~1.0.1",
"cookie": "0.1.3",
"cookie-signature": "1.0.6",
"debug": "~2.2.0",
"depd": "~1.0.1",
"escape-html": "1.0.2",
"etag": "~1.7.0",
"finalhandler": "0.4.0",
"fresh": "0.3.0",
"merge-descriptors": "1.0.0",
"methods": "~1.1.1",
"on-finished": "~2.3.0",
"parseurl": "~1.3.0",
"path-to-regexp": "0.1.7",
"proxy-addr": "~1.0.8",
"qs": "4.0.0",
"range-parser": "~1.0.2",
"send": "0.13.0",
"serve-static": "~1.10.0",
"type-is": "~1.6.6",
"utils-merge": "1.0.0",
"vary": "~1.0.1"
},
"devDependencies": {
"after": "0.8.1",
"ejs": "2.3.3",
"istanbul": "0.3.17",
"marked": "0.3.5",
"mocha": "2.2.5",
"should": "7.0.2",
"supertest": "1.0.1",
"body-parser": "~1.13.3",
"connect-redis": "~2.4.1",
"cookie-parser": "~1.3.5",
"cookie-session": "~1.2.0",
"express-session": "~1.11.3",
"jade": "~1.11.0",
"method-override": "~2.3.5",
"morgan": "~1.6.1",
"multiparty": "~4.1.2",
"vhost": "~3.0.1"
},
"engines": {
"node": ">= 0.10.0"
},
"files": [
"LICENSE",
"History.md",
"Readme.md",
"index.js",
"lib/"
],
"scripts": {
"test": "mocha --require test/support/env --reporter spec --bail --check-leaks test/ test/acceptance/",
"test-ci": "istanbul cover node_modules/mocha/bin/_mocha --report lcovonly -- --require test/support/env --reporter spec --check-leaks test/ test/acceptance/",
"test-cov": "istanbul cover node_modules/mocha/bin/_mocha -- --require test/support/env --reporter dot --check-leaks test/ test/acceptance/",
"test-tap": "mocha --require test/support/env --reporter tap --check-leaks test/ test/acceptance/"
},
"gitHead": "ef7ad681b245fba023843ce94f6bcb8e275bbb8e",
"bugs": {
"url": "https://github.com/strongloop/express/issues"
},
"_id": "express@4.13.3",
"_shasum": "ddb2f1fb4502bf33598d2b032b037960ca6c80a3",
"_from": "express@*",
"_npmVersion": "1.4.28",
"_npmUser": {
"name": "dougwilson",
"email": "doug@somethingdoug.com"
},
"maintainers": [
{
"name": "tjholowaychuk",
"email": "tj@vision-media.ca"
},
{
"name": "jongleberry",
"email": "jonathanrichardong@gmail.com"
},
{
"name": "dougwilson",
"email": "doug@somethingdoug.com"
},
{
"name": "rfeng",
"email": "enjoyjava@gmail.com"
},
{
"name": "aredridel",
"email": "aredridel@dinhe.net"
},
{
"name": "strongloop",
"email": "callback@strongloop.com"
},
{
"name": "defunctzombie",
"email": "shtylman@gmail.com"
}
],
"dist": {
"shasum": "ddb2f1fb4502bf33598d2b032b037960ca6c80a3",
"tarball": "http://registry.npmjs.org/express/-/express-4.13.3.tgz"
},
"directories": {},
"_resolved": "https://registry.npmjs.org/express/-/express-4.13.3.tgz",
"readme": "ERROR: No README data found!"
}
Package.json 屬性說明
- name - 包名。
- version - 包的版本號。
- description - 包的描述。
- homepage - 包的官網 url 。
- author - 包的作者姓名。
- contributors - 包的其他貢獻者姓名。
- dependencies - 依賴包列表。如果依賴包沒有安裝,npm 會自動將依賴包安裝在 node_module 目錄下。
- repository - 包程式碼存放的地方的型別,可以是 git 或 svn,git 可在 Github 上。
- main - main 欄位指定了程式的主入口檔案,require('moduleName') 就會載入這個檔案。這個欄位的預設值是模組根目錄下面的 index.js。
- keywords - 關鍵字
3.6 解除安裝模組
- 我們可以使用以下命令來解除安裝 Node.js 模組。
$ npm uninstall express
- 解除安裝後,你可以到 /node_modules/ 目錄下檢視包是否還存在,或者使用以下命令檢視:
$ npm ls
3.7 更新模組
我們可以使用以下命令更新模組:
$ npm update express
3.8 搜尋模組
使用以下來搜尋模組:
$ npm search express
3.9 建立模組
建立模組,package.json 檔案是必不可少的。我們可以使用 NPM 生成 package.json 檔案,生成的檔案包含了基本的結果。
$ npm init
This utility will walk you through creating a package.json file.
It only covers the most common items, and tries to guess sensible defaults.
See `npm help json` for definitive documentation on these fields
and exactly what they do.
Use `npm install <pkg> --save` afterwards to install a package and
save it as a dependency in the package.json file.
Press ^C at any time to quit.
name: (node_modules) runoob # 模組名
version: (1.0.0)
description: Node.js 測試模組(www.runoob.com) # 描述
entry point: (index.js)
test command: make test
git repository: https://github.com/runoob/runoob.git # Github 地址
keywords:
author:
license: (ISC)
About to write to ……/node_modules/package.json: # 生成地址
{
"name": "runoob",
"version": "1.0.0",
"description": "Node.js 測試模組(www.runoob.com)",
……
}
Is this ok? (yes) yes
以上的資訊,你需要根據你自己的情況輸入。在最後輸入 "yes" 後會生成 package.json 檔案。
- 接下來我們可以使用以下命令在 【npm 資源庫】中註冊使用者(使用郵箱註冊):
$ npm adduser
Username: mcmohd
Password:
Email: (this IS public) mcmohd@gmail.com
- 接下來我們就用以下命令來發布模組:
$ npm publish
如果你以上的步驟都操作正確,你就可以跟其他模組一樣使用 npm 來安裝。
3.10 版本號
-
使用 NPM 下載和釋出程式碼時都會接觸到版本號。NPM 使用語義版本號來管理程式碼,這裡簡單介紹一下。
-
語義版本號分為
X.Y.Z
三位,分別代表主版本號、次版本號和補丁版本號。當程式碼變更時,版本號按以下原則更新。 -
如果只是修復bug,需要更新Z位。
- 如果是新增了功能,但是向下相容,需要更新Y位。
- 如果有大變動,向下不相容,需要更新X位。
- 版本號有了這個保證後,在申明第三方包依賴時,除了可依賴於一個固定版本號外,還可依賴於某個範圍的版本號。例如"argv": "0.0.x"表示依賴於0.0.x系列的最新版argv。
NPM支援的所有版本號範圍指定方式可以檢視官方文件。
3.11 NPM 常用命令
除了本章介紹的部分外,NPM還提供了很多功能,package.json裡也有很多其它有用的欄位。
除了可以在 npmjs.org/doc/ 檢視官方文件外,這裡再介紹一些NPM常用命令。
-
NPM提供了很多命令,例如install和publish,使用npm help可檢視所有命令。
-
NPM提供了很多命令,例如install和publish,使用npm help可檢視所有命令。
-
使用npm help
可檢視某條命令的詳細幫助,例如npm help install。 -
在package.json所在目錄下使用npm install . -g可先在本地安裝當前命令列程式,可用於釋出前的本地測試。
-
使用npm update
可以把當前目錄下node_modules子目錄裡邊的對應模組更新至最新版本。 -
使用npm update
-g可以把全域性安裝的對應命令列程式更新至最新版。 -
使用npm cache clear可以清空NPM本地快取,用於對付使用相同版本號釋出新版本程式碼的人。
-
使用npm unpublish
@ 可以撤銷釋出自己釋出過的某個版本程式碼。
X 參考文獻
- 菜鳥教程
- Node.js 教程 - 菜鳥教程
- Node.js 安裝配置 - 菜鳥教程
- NPM 使用介紹 - 菜鳥教程
- nodejs 官網
- https://nodejs.org/en/download
- https://nodejs.org/dist/
- nodejs 系列教程
- https://www.cnblogs.com/johnnyzen/tag/nodejs/