一、如何使用包管理器
Node.js包管理器,即npm是Node.js官方提供的包管理工具,它已经成为了Node.js包的标准发布平台,用于Node.js包的发布、传播、依赖控制。
(1)获取一个包
npm [install/i] [package_name]
例如安装express包:
npm i express #安装express包
卸载包:
npm uninstall 包名 [-g]
查看当前所有的包:
npm list
...
(2)本地模式和全局模式
npm在默认情况下会从http://npmjs.org搜索或下载包,将包安装到当前目录下的node_modules
a.默认是npm install 包名 #作为本地模式
b.全局模式
npm install -g 包名
c.区别和用法
因为本地模式不会注册PATH环境变量,举例,我们安装supervisor是为了在命令行中运行它,例如直接运行supervisor srcipt.js
npm本地模式仅仅把包安装到了node_modules子目录下,其中的bin目录没有包含在PATH环境变量中,不能直接在命令行中调用。
使用全局模式安装的包并不能直接在javascript文件中require获得,因为require不会搜索/usr/local/lib/node_modules。
通俗讲,当我们要把某个包作为工程运行时的一部分时,通过本地模式获取,如果在命令行下使用,则使用全局模式。
d.包的发布
首先确保具备CommonJS为基础包的规范,但与CommonJS并不完全一致,其主要差别在于必填字段的不同,通过使用rpm init可以根据交互式问答产生一个符合标准的package.json
dos进入这个目录运行rpm init得到package.json的文件,改成自己的文件等信息
然后进入package.json所在目录运行rpm publish就完成了发布
如何更新包?
如果你的包内容有改动,则在版本上作改动,运行npm publish
如何取消发布?
npm unpublish
二、调试代码
Eclipse中有相关插件。
cd testpackage
npm init //用于创建一个标准的JSON文件
npm install testpackage //安装一个包
# 安装指定名字的包 会下载到当前目录下 node_modules/<projectname>
npm install <packagename>
npm install <packagename>@<version> # 按版本号安装
npm install <packagename>@<tagname> # 按发布tag
npm install <packagename>@">=<version>" # 按版本范围
npm install git://<gitdomain> # 按git路径
# 将安装包保存到全局目录(/usr/local/lib/node_modules)下
npm install <packagename> -g
# 生成package.json文件 由按提示的输入的数据生成
npm init
pakcage.json
{
"name" : "test_package",
"version" : "0.0.1",
"description" : "test",
"main" : "index.js",
"scripts" : {
"test" : "node test.js"
},
"repository" : "",
"author" : "",
"license" : "BSD",
"dependencies" : {
"express" : ">= 2.5.6",
"mustache" : "0.4.0",
"commander": "*"
}
}
# 会按目录package.json文件中 dependencies在本地下载相关包
npm install
# 更新指定的包
npm <packagename>
# 查看所有的已安装的包
npm list
├── commander@1.0.1
├─┬ express@3.0.0rc3
│ ├── commander@0.6.1
│ ├─┬ connect@2.4.3
│ │ ├── bytes@0.1.0
│ │ ├── formidable@1.0.11
│ │ ├── pause@0.0.1
│ │ └── qs@0.4.2
│ ├── cookie@0.0.4
│ ├── crc@0.2.0
│ ├── debug@0.7.0
│ ├── fresh@0.1.0
│ ├── methods@0.0.1
│ ├── mkdirp@0.3.3
│ ├── range-parser@0.0.4
│ └─┬ send@0.0.3
│ └── mime@1.2.6
└── mustache@0.4.0
# 查看当前包是否有新版本
npm outdated
# 移除不再依赖的包
npm prune
# link包目录(别的目录下link过来,win下木有用)
npm link <path>/<packagename>
# 和编译本地c++文件有关
npm rebuild
# 运行脚本(package.json scripts中定义)
npm run-script test
# 打包生成<packagename>-<version>.tgz 文件
npm pack
# 查找包 npmjs.com中
npm search <search term>
# 到指定包的主页上去
npm home <packagename>
# 和npmjs.com有关的命令
# 注册一个用户
npm adduser
# 将包发布到npmjs上
npm publish
npm unpublish <package>[@<version>]
npm deprecate <packagename>[@<version>] <message>
npm tag <name>@<version> [tag]