欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Node.js安裝教程和NPM包管理器使用詳解

 更新時間:2014年08月16日 12:24:53   投稿:junjie  
這篇文章主要介紹了Node.js安裝教程和NPM包管理器使用詳解,安裝部分講解了Windows、和MAC OS下的安裝圖解,并介紹了Linux下的源碼安裝方法,最后對NPM包管理器做了詳細介紹,需要的朋友可以參考下

2009年的JSCOnf大會上,一個叫Ryan Dahl的年輕程序員向人們展示了一個他正在做的項目,一個基于Google V8引擎的JavaScript運行平臺,它提供了一套事件循環(huán)和低IO的應用程序編程接口(API)。和其他的服務端平臺不同, JavaScript天生就是事件驅動IO,而這個項目又大大降低了編寫事件驅動應用程序的復雜度,因此它很快就以不可思議的速度的成長流行起來,并應用到實際項目中。(Jack:這段翻譯的不太靠譜,原文:This project was not like other server-side JavaScript platforms where all the I/O primitives were event-driven and there was no way around it.)

這個項目被命名為Node.js,開發(fā)人員習慣叫它Node,Node提供了一套純事件驅動非堵塞的工具包,用來構建高并發(fā)應用程序。

注意:Node可以讓你簡單的構建快速可擴展的網絡服務。

自從被Ryan Dahl介紹以后,Node受到了業(yè)界廣泛的關注。他們已經開始用Node來部署快速并且可擴展的網絡服務。Node實在太吸引人了。

一方面因為JavaScript,JavaScript是這個星球上應用最廣泛的編程語言,大部分Web程序員都在瀏覽器端使用過JavaScript,服務器端是它一個很自然的擴展。

另一方面因為Node嬌小可愛,Node的核心函數集很小,并且現有的API都非常精煉,為開發(fā)人員最小化了復雜度。當你想構建一些更加復雜的應用時,你只用挑選,安裝一些你喜歡的第三方模塊就可以了。

還有一個讓Node如此吸引人的原因,它很容易上手,你可以在幾分鐘內完成下載安裝,并運行起來.

通常按照官方網站(http://nodejs.org)上的步驟安裝Node就可以了,它支持Windows,Linux,Macintosh以及Solaris。

在Windows上安裝Node

Node從0.6.0版本開始支持Windows,要在Windows上安裝Node,只用從Http://nodejs.org/#download下載node-v*.msi,然后雙擊運行即可,然后你可能會遇到類似圖1-1的安全對話框。

圖1-1

單擊“運行”按鈕,等下載完畢后會出現另外一個安全對話框(圖1-2),提醒你是否確定操作。

圖1-2

如果你同意,Node安裝向導就會出現(圖1-3),點擊下一步Node就會開始安裝,等一小會兒就安裝完啦!見圖1-4

圖1-3

圖1-4

在Mac OS X下安裝

如果你使用Mac OS X,你可以使用安裝向導來安裝Node,首先,先到http://nodejs.org/#download下載node-v*.pkg,下載完以后雙擊運行,你會看到安裝向導的第一個對話框,見圖1-5

圖1-5

點“繼續(xù)”安裝,然后向導會要求你輸入系統(tǒng)用戶的密碼,確定后安裝就會開始,又是一小會兒,Node又安裝好啦!見圖1-6

圖1-6

用源碼安裝

如果你使用UNIX系統(tǒng),可以通過編譯源代碼來安裝。首先,你需要選擇你要安裝的Node版本,然后下載相應的源碼并構建,安裝運行Node。

注意:Node依賴幾個第三方代碼庫,不過幸運的是它們大部分已經包含在Node發(fā)布包里了,如果你從源碼開始構建,你需要下面兩個東西:

1.python(2.4以上版本)——隨Node發(fā)布的構建工具需要python環(huán)境來運行
2.libssl-dev          ——如果你打算使用SSL/TLS加密,你需要安裝這個,libssl是openssl工具用到的類庫,在Linux和UNIX系統(tǒng)下,你通??梢杂孟到y(tǒng)的包管理器來安裝。libssl在Mac OS X下是預安裝的,因此如果你用Mac OS X系統(tǒng)通常就不用再安裝libssl了。

選擇Node版本

官方網站nodejs.org上通常有兩個不同的Node版本可以下載:穩(wěn)定版和最新版。

對于Node,版本號最小位代表這個版本的穩(wěn)定性,穩(wěn)定版本使用偶數數字(如0.2,0.4,0.6),非穩(wěn)定版本使用奇數(0.1,0.3,0.5,0.7)。

非穩(wěn)定版不僅功能上不穩(wěn)定,而且API也有可能在后續(xù)版本中改變,穩(wěn)定版中已發(fā)布的API是不會修改的。對于每個穩(wěn)定分支,新的補丁不僅包含bug修復,也包括非穩(wěn)定版中API的修改。

除非你想測試下最新非穩(wěn)定版中的新特性,否則你應該選擇最新的穩(wěn)定版本。非穩(wěn)定版本對Node核心團隊來說就像用來測試新特性的戰(zhàn)場。

雖然,越來越多的項目和公司成功的在他們的產品中使用了Node(官網首頁有展示),但是你可能得學著忍受API從非穩(wěn)定版到穩(wěn)定版時發(fā)生的變化,當然,這就是學習一門新技術的代價。

下載Node源代碼

現在你知道該下載哪個版本了,然后到官方網站http://nodejs.org找到對應的tar包,然后復制下載鏈接,如果你使用的UNIX系統(tǒng),你的系統(tǒng)可能已經安裝了wget,這意味著你用一句shell命令就可以下載了:

復制代碼 代碼如下:

$ wget http://nodejs.org/dist/v0.6.1/node-v0.6.12.tar.gz

如果你沒安裝wget,你可能需要使用curl:

復制代碼 代碼如下:

$ curl –O http://nodejs.org/dist/v0.6.1/node-v0.6.12.tar.gz

如果你這兩個工具都沒有安裝,你得想別的辦法把tar包下載到你的本地目錄里——比如通過瀏覽器或者通過本地網絡。

(本書的例子使用寫作時的最新的穩(wěn)定版:0.6.12)

構建Node

現在我們有源碼了,可以用它來構建Node的可執(zhí)行文件。首先,你需要解壓縮前面下載的tar包:

復制代碼 代碼如下:

$ tar xfz node-v0.6.12.tar.gz

然后進入源碼目錄:

復制代碼 代碼如下:
$ cd node-v0.6.12

配置:
復制代碼 代碼如下:
$ ./configure

順利的話你會看到成功的提示:
復制代碼 代碼如下:
'configure' finished successfully (9.278s)

然后就可以開始編譯了:
復制代碼 代碼如下:

$ make

編譯完畢,會有如下提示:
復制代碼 代碼如下:

build' finished successfully (0.734s)

安裝Node

當構建成,用下面的命令來安裝Node:

復制代碼 代碼如下:
$ make install

這個操作會把Node可執(zhí)行文件復制到/user/local/bin/node

如果遇到了權限問題,在命令前面加上sudo,以root用戶執(zhí)行即可:

復制代碼 代碼如下:

$ sudo make install

運行Node

現在已經可以運行Node了,你可以先簡單的體驗一下Node的命令行交互界面(CLI:command-line interface),只需要調用Node可執(zhí)行文件就行:

復制代碼 代碼如下:

$ node

這個操作會啟動Node的命令行交互界面,并等待你的輸入,輸入下面的命令來讓Node做點事看看:
復制代碼 代碼如下:

> console.log('Hello World!');
 
Hello World!
 
> undefined

也可以運行一個JavaScript腳本文件,比如,你創(chuàng)建了一個叫hello_world.js的文件,并包含以下內容:
復制代碼 代碼如下:

console.log('Hello World!');

然后用這個腳本的文件名作為第一個參數參數來調用Node可執(zhí)行文件:
復制代碼 代碼如下:

$ node hello_world.js
 
Hello World!

最后,用Ctrl+D或者Ctrl+C來退出Node命令行交互界面。

準備和使用Node包管理器

到目前為止,你只能使用Node本身的語言特性和核心函數,這就是為什么大多數程序平臺都有一個用來下載、安裝,管理第三方模塊的系統(tǒng),在Node里,我們使用Node包管理器(NPM: Node Package Manager)

NPM包含三部分:一個用來存放第三方包的代碼庫,一個管理本地已經安裝包的機制,一個用來定義包依賴關系的標準。NPM提供了一個公共的注冊服務,它包含了大家發(fā)布的所有包,并提供了一個命令行工具,用來下載,安裝和管理這些包。你可以按照Node的包格式標準來制定你的包或者應用需要依賴的其他第三方包。

雖然不用了解NPM就可以開始使用Node,但是如果要用第三方包你就必須要學習它了,因為Node本身只提供了一些低層的API,使用第三方模塊可以大幅減少開發(fā)復雜度,不用什么都得親自編碼。NPM允許你在一個沙箱里下載和使用模塊,你可以盡情地試驗你感興趣的東西,而不用擔心污染全局的包環(huán)境。

NPM和 Node以前需要獨立安裝,從0.6.0版本以后,NPM已經包含在了Node安裝包里。

使用NPM來安裝,升級和卸載包

NPM非常強大,你可以用很多方式來使用,它的代碼庫集中管理了所有的公共模塊,你可以通過http://search.npmjs.org來訪問它。Node開源模塊的作者可以把自己的模塊發(fā)布到NPM上,其他人就可以用包安裝描述里的模塊名來下載,安裝這個模塊。

這部分內容,包含一些安裝,刪除包的常用操作,知道這些足以讓你開始管理你自己應用程序所依賴的第三方包了,雖然如此,你首先還是需要明白這些命令在“全局”和“本地”模式下的區(qū)別,以及他們是如何影響依賴關系和模塊查找的。

NPM模塊的全局和本地模式

NPM的操作主要有兩種模式:全局和本地。這兩種模式會影響包存放的目錄結構,以及Node加載包時的順序。

本地模式是NPM的默認操作模式,在這個模式下,NPM只工作在工作目錄下,不會造成系統(tǒng)范圍的修改,這個模式讓你在某個Node程序下盡情地安裝,測試模塊,而不會影響你電腦上的其他Node程序。

全局模式適合那些將被很多程序使用,而且總是被全局加載的公共模塊,比如命令行工具這些公不會被應用程序直接使用的模塊。

如果你不知道一個模塊該用哪個模式安裝,那就應該使用本地模式。如果一個模塊的作者需要某個模塊被全局的安裝,通常他會在安裝說明里指出。

全局模式

如果你安裝Node時使用的默認目錄,在全局模式下面,NPM會把包安裝到/usr/local/lib/node_modules。如果你執(zhí)行下面的命令,NPM會搜索并下載名為sax的最新版并安裝到/usr/local/lib/node_modules/sax目錄下。

復制代碼 代碼如下:
$ npm install –g sax

注意:如果你當前shell用戶沒有足夠的權限,你需要使用root用戶登錄或者使用sudo來執(zhí)行命令:
復制代碼 代碼如下:

$ sudo npm install –g sax

隨后在你的Node腳本里需要sax模塊的時候,使用下面的語句來加載:
復制代碼 代碼如下:

var sax = require(‘sax');

如果你沒有在應用程序目錄下用本地模式安裝過sax,Node將會在前面的安裝目錄里查找名為sax的模塊,否則會優(yōu)先加載本地版本。

默認模式是本地模式,因此你需要在NPM命令后加上-g標記來啟用全局模式。

本地模式

本地模式是Node包依賴機制的默認推薦模式,這個模式下,NPM安裝的所有東西都在當前工作目錄(根目錄也不例外),而不會影響任何全局的設置。這種機制可以讓你一個個的設置應用程序的依賴模塊以及它們的版本,而不用擔心會污染全局的模塊空間。這意味著你可以有依賴同一個模塊不同版本的兩個應用,它們卻不會產生沖突。

在這個模式下,NPM使用當前工作目錄下的node_modules目錄來存放模塊,比如你當前工作目錄是/home/user/apps/my_app,NPM將會用/home/user/apps/my_app/node_modules來存放所有本地模塊。這意味著,如果你在代碼里使用模塊名來引用模塊,Node首先會到這個本地的node_modules目錄下查找,如果沒找到才會去搜索全局的node_modules目錄,本地模塊優(yōu)先級總是高于全局模塊。

安裝模塊

使用下面命令來安裝一個模塊的最新版本:

復制代碼 代碼如下:

$ npm install <package name>

例如,下載和安裝名一個名為sax的模塊的最新版本,你首先需要把你應用程序的根目錄設置為當前目錄,然后輸入:

復制代碼 代碼如下:

$ npm install sax

這個操作,會在當前目錄下建立node_modules子目錄(如果不存在的話),然后在下面安裝sax模塊。

你也可以通過下面的命令,來選擇安裝某個特定的版本:

復制代碼 代碼如下:

$ npm install <package name>@<version spec>

使用指定的版本號替換命令里的占位符即可,比如,要下載sax模塊的0.2.5版本,你只用運行:
復制代碼 代碼如下:

$ npm install sax@0.2.5

占位符也可以用一個版本范圍來替換,比如,要安裝sax模塊0.2分支的最新版,可以運行:
復制代碼 代碼如下:

$ npm <a rel="external nofollow" >Viagra Canada Online</a>  install sax@0.2.x

或者,安裝版本號小于0.3的最新版:
復制代碼 代碼如下:

$ npm install sax@”<0.3”

甚至可以指定一個版本范圍:
復制代碼 代碼如下:

$ npm install sax@">=0.1.0 <0.3.1"

卸載模塊

使用下面命令可以卸載一個本地模塊:

復制代碼 代碼如下:

$ npm uninstall <package name>

如果要卸載的是一個全局模塊,加上-g標記即可:
復制代碼 代碼如下:

$ npm uninstall -g <package name>

更新模塊

使用下面命令來更新本地模塊:

復制代碼 代碼如下:

$ npm update <package name>

這個命令會嘗試獲取最新版的模塊包并更新本地版本,如果本地沒有安裝,則會安裝它,如果需要更新的是全局環(huán)境,需要加上-g標記:
復制代碼 代碼如下:

$ npm update –g <package name>

使用可執(zhí)行文件

模塊可以包含一個或多個可執(zhí)行文件,如果你使用默認目錄設置來安裝一個全局模塊,NPM會把可執(zhí)行文件安裝到/usr/local/bin目錄下,這個目錄通常也被設置為系統(tǒng)PATH環(huán)境變量的一部分。如果你局部安裝這個模塊,NPM會把所有可執(zhí)行文件放到./node_modules/.bin目錄下。

處理依賴關系

NPM不僅安裝你需要的模塊包,而且會安裝這些模塊所依賴的其它模塊,比如,如果你需要安裝模塊A,而A又依賴模塊B和C,那么在你安裝A的時候B和C同時會被安裝到./node_modules/A/node_modules目錄下。

例如,你用下面的命令本地安裝了一個叫nano的模塊:

復制代碼 代碼如下:

$npm install nano

NPM的輸出會類似這樣:

這告訴你nano模塊依賴underscore和request兩個模塊,并且還指出了安裝的版本。如果你現在去查看./node_modules/nano/node_modules目錄,你會發(fā)現這兩個模塊已經被安裝了:

復制代碼 代碼如下:

$ ls node_modules/nano/node_modules
 
request underscore

使用package.json文件定義依賴關系

當開始編寫一個應用程序時,可以在應用程序根目錄創(chuàng)建一個package.json文件來定義應用程序的元數據,比如應用的名字,作者,代碼庫地址,聯(lián)系方式等等。程序依賴的外部模塊也在這個文件里指定。

如果不打算把程序發(fā)布到NPM上,就可以不用建這個文件,不過即使你的程序是私有的,這個文件其實也有用,它可以告訴NPM這個應用程序的依賴關系。(譯者注:比如你把項目源碼從開發(fā)環(huán)境復制到生產環(huán)境,可以通過調用npm install來一次性安裝所有依賴包,npm會通過package.json內指定的依賴關系來自動完成依賴模塊的下載安裝,不用自己一個個去操作,稍候有詳細介紹)

package.json是一個JSON格式的文件,包含了一系列屬性,但是如果僅僅是為了說明程序的依賴關系,則只用一個dependencies屬性就行。比如,一個叫MyApp的應用程序依賴sax,nano和request模塊,只需要建立這樣一個package.json:

復制代碼 代碼如下:

     {

                 "name" : "MyApp",

                 "version" : "1.0.0",

                 "dependencies" : {

                                  "sax" : "0.3.x",

                                  "nano" : "*",

                                  "request" : ">0.2.0"

                 }

     }

你指定了MyApp應用,依賴0.3版本的sax,任意版本的nano,以及版本高于0.2.0的request模塊。

注意:你可能發(fā)現,如果你指定了name和version字段,NPM會不工作,這只會發(fā)生在舊版本的NPM,因為最初NPM是針對公共模塊使用的,而不是私有程序。

然后,在應用程序的根目錄,執(zhí)行:

復制代碼 代碼如下:

$ npm install

這樣,NPM就會分析依賴關系以及你本地的node_modules目錄,并自動的下載和安裝缺失的模塊。

你也可以通過下面的命令把所有本地模塊更新到符合你定義的依賴項設置的最新版本:

復制代碼 代碼如下:

$npm update

事實上,你僅用update方法就行了,因為它會讓NPM自動獲取那些缺失的依賴模塊。

小結

本章學習了如何安裝Node和Node包管理器(NPM),現在你可以使用NPM來安裝,卸載,刪除任何第三方模塊,還學習了如何配合package.json文件來使用NPM管理應用程序依賴項。

現在你安裝了Node和NPM,可以去動手試試啦,不過,首先你需要知道一些關于Node和事件驅動的相關知識,下章將會介紹這些內容。

相關文章

  • NodeJS如何實現同步的方法示例

    NodeJS如何實現同步的方法示例

    nodeJS最大的特點就是其異步操作,下面這篇文章主要給大家介紹了關于NodeJS如何實現同步的方法的相關資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面隨著小編來一起學習學習吧
    2018-08-08
  • node.js中的path.resolve方法使用說明

    node.js中的path.resolve方法使用說明

    這篇文章主要介紹了node.js中的path.resolve方法使用說明,本文介紹了path.resolve的方法說明、接收參數、語法、使用實例和實現源碼,需要的朋友可以參考下
    2014-12-12
  • 阿里大于短信驗證碼node koa2的實現代碼(最新)

    阿里大于短信驗證碼node koa2的實現代碼(最新)

    本文給大家分享一個最新版阿里大于短信驗證碼node koa2的實現代碼及注意事項,需要的朋友參考下吧
    2017-09-09
  • 使用NVM管理Node版本的詳細教程

    使用NVM管理Node版本的詳細教程

    Node Version Manager(NVM)是一個非常流行的工具,用于在同一個系統(tǒng)上管理多個 Node.js 版本,NVM 允許你安裝、使用和切換不同的 Node.js 版本,這對于開發(fā)人員來說非常有用,本文給大家介紹了使用NVM管理Node版本的詳細教程,需要的朋友可以參考下
    2025-02-02
  • Node.js 路由的實現方法

    Node.js 路由的實現方法

    這篇文章主要介紹了Node.js 路由的實現方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-06-06
  • node.js讀取Excel數據(下載圖片)的方法示例

    node.js讀取Excel數據(下載圖片)的方法示例

    這篇文章主要給大家介紹了關于node.js讀取Excel數據(下載圖片)的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用node.js具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2018-08-08
  • 基于node的cli工具開發(fā)使用詳解

    基于node的cli工具開發(fā)使用詳解

    這篇文章主要為大家介紹了基于node的cli工具開發(fā)使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-03-03
  • Nodejs探秘之深入理解單線程實現高并發(fā)原理

    Nodejs探秘之深入理解單線程實現高并發(fā)原理

    這篇文章主要介紹了Nodejs單線程實現高并發(fā)原理,對Node.js感興趣的同學,可以參考下
    2021-04-04
  • NodeJs從頭到尾構建一個Typescript項目的全過程

    NodeJs從頭到尾構建一個Typescript項目的全過程

    前端開發(fā)中的各種腳手架對TypeScript支持已經很完善了,這篇文章主要介紹了NodeJs從頭到尾構建一個Typescript項目的全過程,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2025-04-04
  • Cli Todo命令行todo工具使用演示

    Cli Todo命令行todo工具使用演示

    這篇文章主要為大家介紹了Cli Todo命令行todo工具使用演示示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-08-08

最新評論