如何使用NPM来管理你的Node.js依赖
来源:互联网 发布:ubuntu 16.04 lts iso 编辑:程序博客网 时间:2024/05/16 15:03
npm 是 Node.js 的模块依赖管理工具。作为开发者使用的工具,主要解决开发 Node.js 时会遇到的问题。如同 RubyGems 对于 Ruby 开发者和 Maven 对于 Java 开发者的重要性,npm 对与 Node.js 的开发者和社区的重要性不言而喻。本文包括五点:package.json 、npm 的配置、npm install 命令、npm link 命令和其它 npm 命令。
package.json
npm命令运行时会读取当前目录的 package.json 文件和解释这个文件,这个文件基于 Packages/1.1 规范。在这个文件里你可以定义你的应用名称( name )、应用描述( description )、关键字( keywords )、版本号( version )、应用的配置项( config )、主页( homepage )、作者( author )、资源仓库地址( repository )、bug的提交地址( bugs ),授权方式( licenses )、目录( directories )、应用入口文件( main )、命令行文件( bin )、应用依赖模块( dependencies )、开发环境依赖模块( devDependencies )、运行引擎( engines )和脚本( scripts )等。
对于开发者而言,开发和发布模块都依赖于他对这个文件 package.json 所包含的意义的正确理解。我们下面用一个本文共用的例子来说明:
{ "name": "test", "version": "0.1.0", "description": "A testing package", "author": "A messed author <messed@example.com>", "dependencies": { "express": "1.x.x", "ejs": "0.4.2", "redis": ">= 0.6.7" }, "devDependencies": { "vows": "0.5.x" }, "main": "index", "bin": { "test": "./bin/test.js" }, "scripts": { "start": "node server.js", "test": "vows test/*.js", "preinstall": "./configure", "install": "make && make install" }, "engines": { "node": "0.4.x" }}
这个例子里我们定义了应用的入口文件( main )为 index ,当其他应用引用了我们的模块 require('test') 时,这个 main 的值 index.js 文件被调用。脚本( scripts )使用hash 表定义了几个不同的命令。script.start 里的定义的 node server.js 会在 npm start 时被调用,同样的 npm test 调用时对应的 scripts.test 里定义的命令被调用。在有些 native 模块需要编译的话,我们可以定义预编译和编译的命令。本例中还定义了应用依赖模块( dependencies )和开发环境依赖模块( devDependencies )。应用依赖模块会在安装时安装到当前模块的 node_modules 目录下。开发环境依赖模块主要时在开发环境中用到的依赖模块,用命令 npm 的命令 install 或 link 加上参数 —dev 安装到当前模块的 node_modules 目录下。
大家也注意到 package.json 里的版本号有些是 >= 0.6.7 有些是 1.x.x,这有什么区别?npm 使用于语义化的版本识别来进行版本管理。并不是所有的模块都会提供向后兼容性,有时候某些模块因为某些原因导致不向后兼容。所以我们需要定义一些规则来保证模块能够在某些特定的版本中可用,并且保证能用最新的版本,因为那些版本总是修改了一些 bug 或提升了性能等。我们来看一下版本定义的字段:
- 如何使用npm来管理你的Node.js依赖
- 如何使用NPM来管理你的Node.js依赖
- 如何使用NPM来管理你的Node.js依赖
- 使用NPM来管理你的Node.js依赖
- 用NPM来管理你的node.js依赖
- 使用 npm shrinkwrap 来管理项目依赖
- 使用npm和node开发命令行工具并使用npm管理你的包
- 如何使用npm发布Node.JS程序包
- 如何使用npm发布Node.JS程序包
- 关于npm安装node.js第三方依赖的问题
- Node.js 项目的依赖管理
- 如何在NTLM的代理的后面,使用npm安装node.js的扩展
- 使用npm升级node js
- node.js中npm使用
- js笔记二:node.js的npm使用理解
- node.js、npm的安装
- Node.js 朴实无华的npm
- 使用 nvm 管理不同版本的 node 与 npm
- webuploader+springMvc+JSP 多图上传实现
- 失控的京东高管文化:频繁离职背后原因是什么?
- android---重写TextView实现跑马灯
- hdu 1019
- MyBatis的foreach语句详解
- 如何使用NPM来管理你的Node.js依赖
- Linuxshelll脚本面试25问
- Java poi技术写Excel的Sheet
- OpenStack风口下的“雨林生态”:华为成为主流玩家
- Android 6.0下出错: UnsatisfiedLinkError: dlopen failed . text relocations
- 《禅与Objective-C编程艺术》读书笔记(二)
- 【sphinx】 配置文件之增量数据源
- Mac OS X中配置Apache
- Mysql主从配置,实现读写分离