node.js NPM 使用

n=NPM是一個Node包管理和分發工具,已經成爲了非官方的發佈Node模塊(包)的標準。有了NPM,能夠很快的找到特定服務要使用的包,進行下載、安裝以及管理已經安裝的包。npms安裝:html

下載npm源代碼:
   https://github.com/isaacs/npm/tagsnode

 

 

將npm源代碼解壓到D:\npmjs目錄中。
   在命令提示符窗口中執行下面的操做,完成npm的安裝:linux

D:\>cd npmjs
D:\npmjs>node cli.js install -gf

   另外:nginx

node cli.js install npm -gf //能夠安裝最新版的NPM
node cli.js install npm@1.0.105 -gf //能夠安裝指定版本的NPM

   上面兩種方法都是經過網絡從代碼庫中下載並安裝,可是代碼庫通常只保留最近的兩個版本。git

NPM安裝完成後,將"D:\nodejs\node_modules"加入系統環境變量NODE_PATH中。github

 

D:\develop\nodejs\hello>npm install -d
npm info it worked if it ends with ok
npm info using npm@1.0.103
npm info using node@v0.5.10
npm info preinstall application-name@0.0.1
npm info addNamed [ 'jade', '>= 0.0.1' ]
npm info addNamed [ 'express', '2.5.0' ]web

 

最好設置下國內鏡像要否則下載會很慢。淘寶有個npm鏡像。chrome

http://npm.taobao.org/shell

 

 

      NPM經常使用的命令有:express

      (1)$ npm install moduleNames

               安裝Node模塊

               注意事項:若是在使用模塊的時候不知道其名字,能夠經過http://search.npmjs.org網站按照

                                索引值找到想要的模塊。npm也提供了查詢的功能  $ npm search indexName

                                 安裝完畢後會產生一個node_modules目錄,其目錄下就是安裝的各個node模塊。

                                 node的安裝分爲全局模式和本地模式。通常狀況下會以本地模式運行,包會被安裝

                                到和你的應用代碼統計的本地node_modules目錄下。在全局模式下,Node包會被

                                安裝到Node的安裝目錄下的node_modules下。全局安裝命令爲

                                $ npm install -g moduleName。獲知使用$npm set global=true來設定安裝模式

                              ,$npm get global能夠查看當前使用的安裝模式。

 

我最開始已經用這個安裝formidable:


C:\Users\Administrator

>nmp install formidable

個人代碼放在H盤:

var formidable = require('formidable'),

運行老是報錯:

緣由是什麼呢?原來node.js 模塊安裝有兩種方式,一種是local安裝,一種是全局安裝。

nmp install xxx 普通安裝

npm install  xxx -g 將會被安裝到【全局目錄】裏,個人是安裝在:

C:\Users\Administrator\AppData\Roaming\npm\node_modules 目錄。

能夠經過 npm config set prefix "目錄路徑" 來設置。

 

普通的npm會安裝到當前目錄,加上—global參數(簡寫爲-g)就會安裝到默認的全局目錄,至於Node和npm的默認目錄是哪些,建議閱讀這篇文章,對於win7,8用戶言,如今是默認裝到Program Files\nodejs下, npm 的 repo在 %USERPROFILE%\AppData\Roaming\npm 且會自動加到系統PATH下。

 

1. npm install xxx -g 時, 模塊將被下載安裝到【全局目錄】中。

【全局目錄】經過 npm config set prefix "目錄路徑" 來設置。

2. npm install xxx ,則是將模塊下載到當前命令行所在目錄。

例如:

c:\123>npm install xxx

將會安裝到

c:\123\node_modules\xxx

若是是全局安裝,還要設置一個環境變量,

NODE_PATH =C:\Users\Administrator\AppData\Roaming\npm\node_modules

就能夠了。

 

 

       (2)$ npm view moduleNames

                 查看node模塊的package.json文件夾

                注意事項:若是想要查看package.json文件夾下某個標籤的內容,可使用

                                 $ npm view moduleName labelName

       (3)$ npm list 

                查看當前目錄下已安裝的node包

                注意事項:Node模塊搜索是從代碼執行的當前目錄開始的,搜索結果取決於當前使用的目錄中

                                 的node_modules下的內容。$ npm list parseable=true能夠目錄的形式來展示當

                                 前安裝的全部node包

       (4)$ npm help

                查看幫助命令

       (5)$ npm view moudleName dependencies

                查看包的依賴關係

       (6)$ npm view moduleName repository.url

               查看包的源文件地址

       (7)$ npm view moduleName engines

               查看包所依賴的Node的版本

      (8)$npm help folders

                查看npm使用的全部文件夾

      (9)$ npm rebuild moduleName

                用於更改包內容後進行重建

      (10)$ npm outdated 

                 檢查包是否已通過時,此命令會列出全部已通過時的包,能夠及時進行包的更新

      (11)$ npm update moduleName

                     更新node模塊

      (12)$ npm uninstall moudleName

                      卸載node模塊

      (13)一個npm包是包含了package.json的文件夾,package.json描述了這個文件夾的結構。訪

                      問npm的json文件夾的方法以下:

                            $ npm help json 

                      此命令會以默認的方式打開一個網頁,若是更改了默認打開程序則可能不會以網頁的形式打

                      開。

      (14)發佈一個npm包的時候,須要檢驗某個包名是否已存在

                    $ npm search packageName

      (15)不少時候咱們在使用一個npm包的時候常常會忘記了require其相互依賴的模塊,咱們能夠

                     藉助如以下命令來查看此模塊相互依賴的包都有哪些

 

更多命令請參看npm官方文檔http://npmjs.org/doc/ 

參考:http://blog.csdn.net/dellheng/article/details/7076461

local安裝和global安裝區別:

npm的包安裝分爲本地安裝(local)、全局安裝(global)兩種,從敲的命令行來看,差異只是有沒有-g而已,好比:

npm install grunt # 本地安裝

npm install -g grunt-cli # 全局安裝

這兩種安裝方式有什麼區別呢?從npm官方文檔的說明來看,主要區別在於(後面經過具體的例子來講明):

本地安裝

1. 將安裝包放在 ./node_modules 下(運行npm時所在的目錄)

2. 能夠經過 require() 來引入本地安裝的包

全局安裝

1. 將安裝包放在 /usr/local 下

2. 能夠直接在命令行裏使用

本地安裝

一、將安裝包放在 ./node_modules 下(運行npm時所在的目錄)

好比運行下面命令

npm install grunt --save-dev

那麼,就會在當前目錄下發現一個node_modules目錄,進去後可以看到grunt這個包

casperchenMacBookPro:testUsemin casperchen$ ll

total 200

drwxr-xr-x 16 casperchen staff 544B 12 14 23:17 node_modules

進入node_modules

casperchenMacBookPro:node_modules casperchen$ ll

total 0

drwxr-xr-x 16 casperchen staff 544B 12 5 00:49 grunt

二、能夠經過 require() 來引入本地安裝的包

直接來個例子,咱們在項目根目錄下建立test.js,裏面的內容很簡單

var grunt = require('grunt');grunt.log.writeln('hello grunt');

而後在控制檯運行test.js

node test.js

而後就會看到以下輸出

casperchenMacBookPro:testUsemin casperchen$ node test.js

hello grunt

全局安裝

一、將安裝包放在 /usr/local 下

運行以下命令

npm install -g grunt-cli

而後進入/usr/local/bin目錄,就會發現grunt-cli已經被放置在下面了

casperchenMacBookPro:bin casperchen$ pwd

/usr/local/bin

casperchenMacBookPro:bin casperchen$ ll grunt

lrwxr-xr-x 1 root admin 39B 8 18 21:43 grunt -> ../lib/node_modules/grunt-cli/bin/grunt

可見,全局模塊的真實安裝路徑在/usr/local/lib/node_modules/下,/usr/local/bin下的可執行文件只是軟連接而已

二、能夠直接在命令行裏使用

實現細節在上面其實就講到了,經過在`/usr/local/bin下建立軟連接的方式實現。這裏不贅述

更直觀的例子

下面就直接看下,當咱們在項目目錄下運行grunt task(task爲具體的grunt任務名,自行替換)時,發生了什麼事情。這裏要藉助node-inspector。

首先,沒接觸過node-inspector的童鞋能夠參考以前的文章瞭解下

運行以下命令開啓調試

node-inspector &

見到以下輸出

casperchenMacBookPro:tmp casperchen$ node-inspector &

[1] 14390

casperchenMacBookPro:tmp casperchen$ Node Inspector v0.6.1

info - socket.io started

Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.

接着,在當前任務下運行grunt任務

^CcasperchenMacBookPro:testUsemin casperchen$ node --debug-brk $(which grunt) dev

debugger listening on port 5858

接着,打開chrome瀏覽器,輸入網址http://127.0.0.1:8080/debug?port=5858,就會自動進入斷點調試狀態,從一旁顯示的tips能夠看到,全局命令grunt其實就是/usr/local/lib/node_modules/grunt-cli/bin/grunt。

按下F8接着往下跑,就會進如Gruntfile.js,此時的grunt,是本地安裝的一個node包,全局命令跟本地的包名字同樣,挺有迷惑性的。軟件自學網

更多:

http://www.cit.cn/tech/develop/node-js/2012/0817/996.html

http://www.cnblogs.com/walkerwang/archive/2013/04/05/3001001.html

 linux npm安裝:

就像NPM的官網(http://npmjs.org/ )上介紹的那樣,安裝NPM僅僅是一行命令的事情:

curl http://npmjs.org/install.sh | sh 

這裏詳解一下這句命令的意思,curl http://npmjs.org/install.sh是經過curl命令獲取這個安裝shell腳本,按後經過管道符| 將獲取的腳本交由sh命令來執行。這裏若是沒有權限會安裝不成功,須要加上sudo來確保權限:

curl http://npmjs.org/install.sh | sudo sh 

安裝成功後執行npm命令,會獲得一下的提示:

Usage: npm <command> 
where <command> is one of: 
adduser, apihelp, author, bin, bugs, c, cache, completion, 
config, deprecate, docs, edit, explore, faq, find, get, 
help, help-search, home, i, info, init, install, la, link, 
list, ll, ln, ls, outdated, owner, pack, prefix, prune, 
publish, r, rb, rebuild, remove, restart, rm, root, 
run-script, s, se, search, set, show, star, start, stop, 
submodule, tag, test, un, uninstall, unlink, unpublish, 
unstar, up, update, version, view, whoami 

咱們以underscore爲例,來展現下經過npm安裝第三方包的過程。

npm install underscore 

返回:

underscore@1.2.2 ./node_modules/underscore 

因爲一些特殊的網絡環境,直接經過npm install命令安裝第三方庫的時候,常常會出現卡死的狀態。幸運的是國內CNode社區的@fire9 同窗利用空餘時間搭建了一個鏡像的NPM資源庫,服務器架設在日本,能夠繞過某些沒必要要的網絡問題。你能夠經過如下這條命令來安裝第三方庫:

npm --registry "http://npm.hacknodejs.com/

" install underscore 

若是你想將它設爲默認的資源庫,運行下面這條命令便可:

npm config set registry "http://npm.hacknodejs.com/ "

設置以後每次安裝時就能夠不用帶上—registry參數。值得一提的是還有另外一個鏡像可用,該鏡像地址是http://registry.npmjs.vitecho.com ,如需使用,替換上面兩行命令的地址便可。

 

 

經過npm安裝包。安裝好之後會自動被安裝到 /usr/local/bin 目錄下,而相依的函式庫也會自動安裝到/usr/local/lib/node 目錄下,實在是很是方便。

 


 

 

npm使用

npm init  會引導你建立一個package.json文件,包括名稱、版本、做者這些信息等

使用package.json

在Pakcage.json所在目錄npm install就能夠安裝了

 

 在國內npm很慢,加速辦法

換成鏡像http://npm.taobao.org/

你可使用咱們定製的 cnpm (gzip 壓縮支持) 命令行工具代替默認的 npm:

$ npm install -g cnpm --registry=https://registry.npm.taobao.org

或者你直接經過添加 npm 參數 alias 一個新命令:

alias cnpm="npm --registry=https://registry.npm.taobao.org \ --cache=$HOME/.npm/.cache/cnpm \ --disturl=https://npm.taobao.org/dist \ --userconfig=$HOME/.cnpmrc" # Or alias it in .bashrc or .zshrc $ echo '\n#alias for cnpm\nalias cnpm="npm --registry=https://registry.npm.taobao.org \ --cache=$HOME/.npm/.cache/cnpm \ --disturl=https://npm.taobao.org/dist \ --userconfig=$HOME/.cnpmrc"' >> ~/.zshrc && source ~/.zshrc

安裝模塊

從 registry.npm.taobao.org 安裝全部模塊. 當安裝的時候發現安裝的模塊尚未同步過來, 淘寶 NPM 會自動在後臺進行同步, 而且會讓你從官方 NPMregistry.npmjs.org 進行安裝. 下次你再安裝這個模塊的時候, 就會直接從 淘寶 NPM 安裝了.

$ cnpm install [name]

同步模塊

直接經過 sync 命令立刻同步一個模塊, 只有 cnpm 命令行纔有此功能:

$ cnpm sync connect

固然, 你能夠直接經過 web 方式來同步: /sync/connect

$ open https://npm.taobao.org/sync/connect

 另外還能夠經過

1.經過config命令


這種方法也是把所謂的user config寫入到 ~/.npmrc文件的!!

https://cnodejs.org/topic/4f9904f9407edba21468f31e


npm config set registry https://registry.npm.taobao.org npm info underscore (若是上面配置正確這個命令會有字符串response

node_modules文件夾時提示該文件夾包含名稱過長刪除不了

 cmd下rmdir /s/q your_app_dir 來刪除

npm install rimraf -g
rimraf node_modules
相關文章
相關標籤/搜索