原文:  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包的依赖及版本号(转)的更多相关文章

  1. Node.js包管理器Yarn的入门介绍与安装

    FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...

  2. Node.js包(JXcore)

    Node.js的代码是开放的,并准备好被复制像任何其他Javascript代码.但现在它不可能的了.JXcore 这是一个开源项目,引入了包装和源文件和其他资源加密成JX包一个独特的功能. 考虑大型项 ...

  3. 9.Node.js 包管理器npm

    npm 是 Node.js  官方提供的包管理工具, 用于 Node.js包的发布.传播.依赖控制 安装 express ==> 流行的基于Node.js的Web开发框架,可以快速地搭建一个完整 ...

  4. Node.js包管理器:

    Node.js包管理器: 当我们要把某个包作为工程运行的一部分时,通过本地模式获取,如果要在命令行下使用,则使用全局模式安装 使用全局模式安装的包并不能直接在JavaScript文件中用require ...

  5. 《Node.js 包教不包会》

    <Node.js 包教不包会> 为何写作此课程 在 CNode(https://cnodejs.org/) 混了那么久,解答了不少 Node.js 初学者们的问题.回头想想,那些问题所需要 ...

  6. Node.js 包管理器 NPM 讲解

    包管理器又称软件包管理系统,它是在电脑中自动安装.配制.卸载和升级软件包的工具组合,在各种系统软件和应用软件的安装管理中均有广泛应用.对于我们业务开发也很受益,相同的东西不必重复去造轮子. 每个工具或 ...

  7. node.js - 包、express

    首先,要先在这里分享一下我的喜悦,从昨天开始其实一直都在喜悦当中的,我收到了我的第一份offer,这感觉不摆了,比第一桶金都还舒服,虽然我还没收到第一桶金哈哈,不过offer都得了应该也快了. 今天的 ...

  8. npm --- Node.js包管理器

    目录 1. 安装Node.js 2. 运行npm 3. npm介绍 3.1 安装插件 3.2 更新插件 3.3 卸载插件 3.4 查看当前目录中的插件列表 4. 使用cnpm 4.1 安装 npm( ...

  9. Node.js的循环依赖

    我们知道在实际编程过程中,要尽可能的减少或者规避循环依赖情况的发生.但在现实环境中,有时却不得不产生循环依赖.Node.js不提倡使用循环依赖,但真有如此情况发生时Node.js也有办法解决.这篇博文 ...

随机推荐

  1. git高清技能图

    ----

  2. bzoj千题计划222:bzoj2329: [HNOI2011]括号修复(fhq treap)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2329 需要改变的括号序列一定长这样 :)))((( 最少改变次数= 多余的‘)’/2 [上取整] + ...

  3. Javascript Image Slider 插件注册机

    Javascript Image Slider 是个不错的轮播插件,兼容 IE 7.0+, Firefox 1.5+, Chrome 1.0+, Safari 3+, Opera 9.0+, Nets ...

  4. HTML的文档类型:<!DOCTYPE >

    <!DOCTYPE> 声明:它不是 HTML 标签而且对大小写不敏感,而是指示 web 浏览器关于页面使用哪个 HTML 版本进行编写的指令.而且 声明必须是 HTML 文档的第一行,位于 ...

  5. 20155211 2016-2017-2 《Java程序设计》第六周学习总结

    20155211 2016-2017-2 <Java程序设计>第六周学习总结 教材学习内容总结 第十章 输入/输出 一.InputStream与OutputStream (一)串流设计的概 ...

  6. shell ssh 批量执行

    ssh 批量执行命令 #版本1 #!/bin/bash while read line do Ip=`echo $line|awk '{print $1}'` Passwd=`echo $line|a ...

  7. shiro登录成功之后跳转原路径

    通过 WebUtils.getSavedRequest(request) 来获取shiro保存在session登录之前的url 1:java Controller代码 @PostMapping(&qu ...

  8. AC自动机(病毒侵袭 )

    题目链接:https://cn.vjudge.net/contest/280743#problem/B 题目大意:中文题目 具体思路:AC自动机模板题,编号的时候注意,是按照给定的id进行编号的.然后 ...

  9. os_cpu_a.asm

    在OS_CPU_A.ASM中,定义了开.关中断的方法,在uC/OS-II系统中有三种方法可以实现中断开关,而ARM只适用于模式三,即使用一个局部变量,在中断进入之间保存CPU状态,退出时候再恢复状态. ...

  10. 【比赛游记】NOIP2017游记

    身为FJ的选手,在师大附中AHSOFNU考试,环境很不错,考得也还可以吧...[考的并不好] 不过比赛前都在划水233333 另:看到这篇博客的OIer们一定要评论啊! Day1的中午,因为穿了短袖去 ...