n=NPM是一个Node包管理和分发工具,已经成为了非官方的发布Node模块(包)的标准。有了NPM,可以很快的找到特定服务要使用的包,进行下载、安装以及管理已经安装的包。npms安装:

下载npm源代码:
   https://github.com/isaacs/npm/tags

将npm源代码解压到D:\npmjs目录中。
   在命令提示符窗口中执行下面的操作,完成npm的安装:

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

另外:

node cli.js install npm -gf //可以安装最新版的NPM
node cli.js install npm@1.0.105 -gf //可以安装指定版本的NPM

上面两种方法都是通过网络从代码库中下载并安装,但是代码库一般只保留最近的两个版本。

NPM安装完成后,将"D:\nodejs\node_modules"加入系统环境变量NODE_PATH中。

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' ]

最好设置下国内镜像要不然下载会很慢。淘宝有个npm镜像。

http://npm.taobao.org/

NPM常用的命令有:

(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. 可以直接在命令行里使用

本地安装

1、将安装包放在 ./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

2、可以通过 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

全局安装

1、将安装包放在 /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下的可执行文件只是软链接而已

2、可以直接在命令行里使用

实现细节在上面其实就讲到了,通过在`/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命令

npm config set registry https://registry.npm.taobao.org
npm info underscore (如果上面配置正确这个命令会有字符串response)

这种方法也是把所谓的user config写入到 ~/.npmrc文件的!! https://cnodejs.org/topic/4f9904f9407edba21468f31e

node_modules文件夹时提示该文件夹包含名称过长删除不了

cmd下rmdir /s/q your_app_dir 来删除

npm install rimraf -g
rimraf node_modules

node.js NPM 使用的更多相关文章

  1. Latest node.js & npm installation on Ubuntu 12.04

    转自:https://rtcamp.com/tutorials/nodejs/node-js-npm-install-ubuntu/ Compiling is way to go for many b ...

  2. Node.js npm

    Node程序包管理器(NPM)提供了以下两个主要功能: 在线存储库的Node.js包/模块,可搜索 search.nodejs.org 命令行实用程序来安装Node.js的包,做版本管理和Node.j ...

  3. 自制node.js + npm绿色版

    自制node.js + npm绿色版   Node.js官网有各平台的安装包下载,不想折腾的可以直接下载安装,下面说下windows平台下如何制作绿色版node,以方便迁移. 获取node.exe下载 ...

  4. Mac 下搭建环境 homebrew/git/node.js/npm/vsCode...

    主要记录一下 homebrew/git/node.js/npm/mysql 的命令行安装 1. 首先安装 homebrew  也是一个包管理工具: mac 里打开终端命令行工具,粘下面一行回车安装br ...

  5. Node.js npm基础安装配置&创建第一个VUE项目

    使用之前,我们先来明白这几个东西是用来干什么的. node.js: 一种javascript的运行环境,能够使得javascript脱离浏览器运行.Node.js的出现,使得前后端使用同一种语言,统一 ...

  6. Node.js NPM Package.json

    章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json Nod ...

  7. Node.js NPM 包(Package)

    章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json 包是打 ...

  8. Node.js NPM 管理包

    章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json 根据安 ...

  9. Node.js NPM 作用

    章节 Node.js NPM 介绍 Node.js NPM 作用 Node.js NPM 包(Package) Node.js NPM 管理包 Node.js NPM Package.json NPM ...

  10. Node.js NPM 教程

    NPM是Node.js的包(或模块)管理器,是Node.js应用程序开发的核心. www.npmjs.com上有海量的Node.js包,供免费下载使用. 当安装Node.js时,NPM程序会被同时安装 ...

随机推荐

  1. make clean与make distclean的区别

    make clean仅仅是清除之前编译的可执行文件及配置文件. 而make distclean要清除所有生成的文件. Makefile 在符合GNU Makefiel惯例的Makefile中,包含了一 ...

  2. linux删除、移动、拷贝时,加-f仍然会提示的解决办法

    cp -f 还是提示 root# alias 可以看到,执行cp就等于执行了cp -i,-i是确认提示 alias cp='cp -i' root# vi ~/.bashrc 修改完毕Esc, :wq ...

  3. gnome-ssh-askpass:No such file or directory && unable to read askpass response

    1.使用git的时候,gnome-ssh-askpass出现“error: cannot run /usr/libexec/openssh/gnome-ssh-askpass: No such fil ...

  4. ruby和Python简单对比

    前不久学了ruby,发现ruby和Python非常像,于是自个测试对比了下,测完了才知道网上有现成的……下面是测试结果   序列(包括列表和元组等)有分片的特点:可能会比较方便的提取其中特定元素,暂时 ...

  5. ACboy needs your help again!--hdu1702

    ACboy needs your help again! Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K ( ...

  6. Oracle EBS-SQL (OM-1):查询订单发货明细.sql

    select mtrh.request_number                  发货单号,       mmt.transaction_date                  发货时间,  ...

  7. create custom launcher icon 细节介绍

    create custom launcher icon 是创建你的Android app的图标 点击下一步的时候,出现的界面就是创建你的Android的图标 Foreground: ” Foregro ...

  8. 安全HTTPS-全面详解对称加密,非对称加密,数字签名,数字证书和HTTPS【下】

    1.  HTTPS 1.1. 什么是HTTPS HTTPS(HypertextTransfer Protocol Secure)即安全的HTTP.HTTPS的安全基础是安全套接层(Secure Soc ...

  9. delphi 获取北京时间(使用XMLHTTP获取百度的时间,WebBrowser获取www.timedate.cn的时间)

    方法一: uses ComObj, DateUtils; function GetInternetTime: string; var XmlHttp: OleVariant; datetxt: str ...

  10. lastcomm搜索并显示以前执行过的命令信息

    lastcomm搜索并显示以前执行过的命令信息