Node.js包的依赖及版本号(转)
原文: http://www.cnphp6.com/archives/64130
Node.js最重要的一个文件就是package.json,其中的配置参数决定了功能。例如下面就是一个例子
{
"name": "test",
"version": "1.0.0",
"description": "test",
"main": "main.js",
"keywords": [
"test"
],
"author": "wade",
"license": "MIT",
"dependencies": {
"express": "^4.10.1"
},
"devDependencies": {
"jslint": "^0.6.5"
}
}
dependencies与devDependencies:
一个node package有两种依赖,一种是dependencies,另一种是devDependencies,其中前者依赖的项是正常运行该包时所需要的依赖项,而后者则是开发的时候需要的依赖项,像一些进行单元测试之类的包。简单来记就是下面的
“dependencies”: {} //生产环境
“devDependencies”: {} //开发环境
在package.json所在目录执行npm install的时候,devDependencies里面的模块也会被安装的。如果我们只想安装dependencies里面的包,可以执行
npm install –production
如果只安装devDependencies,可以执行
npm install –dev
同理,使用npm install node_module –save自动更新dependencies字段值,使用npm install node_module –save-dev自动更新devDependencies字段值。
版本号:
每一个模块后面对应的就是他的版本号,如”^4.10.1″。下面是几个版本的表达式
| 表达式 | 版本范围 |
| >=1.2.7 | 大于等于1.2.7 |
| >=1.2.7 <1.3.0 | 1.2.7,1.2.8,1.2.9 |
| 1.2.3 – 2.3.4 | >=1.2.3 <=2.3.4 |
| 1.2 – 2.3.4 | >=1.2.0 <=2.3.4 |
| 1.2.3 – 2.3 | >=1.2.3 <2.4.0 |
| 1.2.3 – 2 | >=1.2.3 <3.0.0 |
| * | >=0.0.0 |
| 1.x(等价于1.X) | >=1.0.0 <2.0.0 |
| 1.2.x | >=1.2.0 <1.3.0 |
| “”(等价于*) | >=0.0.0 |
| 1(等价于1.x.x) | >=1.0.0 <2.0.0 |
| 1.2(等价于1.2.x) | >=1.2.0 <1.3.0 |
| ~1.2.3(>=1.2.3 <1.(2+1).0) | >=1.2.3 <1.3.0 |
| ~1.2(>=1.2.0 <1.(2+1).0) | >=1.2.0 <1.3.0 |
| ~1(>=1.0.0 <(1+1).0.0) | >=1.0.0 <2.0.0 |
| ~0.2.3(>=0.2.3 <0.(2+1).0) | >=0.2.3 <0.3.0 |
| ~0.2(>=0.2.0 <0.(2+1).0) | >=0.2.0 <0.3.0 |
| ~0(>=0.0.0 <(0+1).0.0) | >=0.0.0 <1.0.0 |
| ~1.2.3-beta.2 | >=1.2.3-beta.2 <1.3.0 |
| ^1.2.3 | >=1.2.3 <2.0.0 |
| ^0.2.3 | >=0.2.3 <0.3.0 |
| ^0.0.3 | >=0.0.3 <0.0.4 |
| ^1.2.3-beta.2 | >=1.2.3-beta.2 <2.0.0 |
| ^0.0.3-beta | >=0.0.3-beta <0.0.4 |
| ^1.2.x | >=1.2.0 <2.0.0 |
| ^0.0.x | >=0.0.0 <0.1.0 |
| ^0.0 | >=0.0.0 <0.1.0 |
| ^1.x | >=1.0.0 <2.0.0 |
| ^0.x | >=0.0.0 <1.0.0 |
参考文献:
http://stackoverflow.com/questions/22343224/difference-between-tilde-and-caret-in-package-json
https://www.npmjs.org/doc/misc/npm-config.html#production
Node.js包的依赖及版本号(转)的更多相关文章
- Node.js包管理器Yarn的入门介绍与安装
FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...
- Node.js包(JXcore)
Node.js的代码是开放的,并准备好被复制像任何其他Javascript代码.但现在它不可能的了.JXcore 这是一个开源项目,引入了包装和源文件和其他资源加密成JX包一个独特的功能. 考虑大型项 ...
- 9.Node.js 包管理器npm
npm 是 Node.js 官方提供的包管理工具, 用于 Node.js包的发布.传播.依赖控制 安装 express ==> 流行的基于Node.js的Web开发框架,可以快速地搭建一个完整 ...
- Node.js包管理器:
Node.js包管理器: 当我们要把某个包作为工程运行的一部分时,通过本地模式获取,如果要在命令行下使用,则使用全局模式安装 使用全局模式安装的包并不能直接在JavaScript文件中用require ...
- 《Node.js 包教不包会》
<Node.js 包教不包会> 为何写作此课程 在 CNode(https://cnodejs.org/) 混了那么久,解答了不少 Node.js 初学者们的问题.回头想想,那些问题所需要 ...
- Node.js 包管理器 NPM 讲解
包管理器又称软件包管理系统,它是在电脑中自动安装.配制.卸载和升级软件包的工具组合,在各种系统软件和应用软件的安装管理中均有广泛应用.对于我们业务开发也很受益,相同的东西不必重复去造轮子. 每个工具或 ...
- node.js - 包、express
首先,要先在这里分享一下我的喜悦,从昨天开始其实一直都在喜悦当中的,我收到了我的第一份offer,这感觉不摆了,比第一桶金都还舒服,虽然我还没收到第一桶金哈哈,不过offer都得了应该也快了. 今天的 ...
- npm --- Node.js包管理器
目录 1. 安装Node.js 2. 运行npm 3. npm介绍 3.1 安装插件 3.2 更新插件 3.3 卸载插件 3.4 查看当前目录中的插件列表 4. 使用cnpm 4.1 安装 npm( ...
- Node.js的循环依赖
我们知道在实际编程过程中,要尽可能的减少或者规避循环依赖情况的发生.但在现实环境中,有时却不得不产生循环依赖.Node.js不提倡使用循环依赖,但真有如此情况发生时Node.js也有办法解决.这篇博文 ...
随机推荐
- 洛谷 P2527 [SHOI2001]Panda的烦恼 解题报告
P2527 [SHOI2001]Panda的烦恼 题目描述 panda是个数学怪人,他非常喜欢研究跟别人相反的事情.最近他正在研究筛法,众所周知,对一个范围内的整数,经过筛法处理以后,剩下的全部都是质 ...
- POJ 2502 Subway / NBUT 1440 Subway / SCU 2186 Subway(图论,最短距离)
POJ 2502 Subway / NBUT 1440 Subway / SCU 2186 Subway(图论,最短距离) Description You have just moved from a ...
- 【洛谷P1214】等差数列
题目大意:列出从一个给定上界的双平方数集合中选出若干个数,组成长度为 N 的等差数列的首项和公差. 题解:首先,因为是在双平方数集合上的等差数列,而且根据题目范围可知,上界不超过 2e5,可以先打表, ...
- 详解掩膜mask
什么是掩膜(mask) 数字图像处理中的掩膜的概念是借鉴于PCB制版的过程,在半导体制造中,许多芯片工艺步骤采用光刻技术,用于这些步骤的图形“底片”称为掩膜(也称作“掩模”),其作用是:在硅片上选定的 ...
- Python常用模块-摘要算法(hashlib)
Python常用模块-摘要算法(hashlib) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.MD5算法参数详解 1.十六进制md5算法摘要 #!/usr/bin/env p ...
- list里面放的实体对象,页面用c:foreach应该怎么取?
关于网友提出的" list里面放的实体对象,页面用c:foreach应该怎么取?"问题疑问,本网通过在网上对" list里面放的实体对象,页面用c:foreach应该怎么 ...
- c#:无法将 NULL 转换成“System.DateTime”,因为它是一种值类型
摘自:http://www.blogjava.net/parable-myth/archive/2010/09/30/333454.html 在C# 2.0里面的数据类型中,分为值类型和引用类型,引用 ...
- POJ 3252 Round Number(数位DP)
Round Numbers Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6983 Accepted: 2384 Des ...
- bzoj千题计划196:bzoj4826: [Hnoi2017]影魔
http://www.lydsy.com/JudgeOnline/problem.php?id=4826 吐槽一下bzoj这道题的排版是真丑... 我还是粘洛谷的题面吧... 提供p1的攻击力:i,j ...
- python技巧 使用值来排序一个字典
In [8]: a={'x':11,'y':22,'c':4} In [9]: import operator In [10]: sorted(a.items(),key=operator.itemg ...