最近安装测试环境需要安装webpack1版本。但是用cnpm安装的时候默认已经是2.6.1了
那么我们怎么安装指定版本呢。
Semver语义化版本控制规范
首先node采用semver规范,感兴趣的可以研究下。在这我们要明白版本号。
http://semver.org/lang/zh-CN/
版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
主版本号:当你做了不兼容的API 修改,
次版本号:当你做了向下兼容的功能性新增,
修订号:当你做了向下兼容的问题修正。
先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸
例如1.2.19 1是版本号 ,2是次版本号,19是修订号
我们看看我们配置的依赖包
|
|
其中^2.6.1就是版本号。我们看看官方解释
dependencies
Dependencies are specified in a simple object that maps a package name to a version range. The version range is a string which has one or more space-separated descriptors. Dependencies can also be identified with a tarball or git URL.
Dependencies是将包名映射到版本范围的简单对象。版本范围是一个字符串,它具有一个或多个空格分隔的描述符。Dependencies也可以用tarball或git来标识。
Please do not put test harnesses or transpilers in your dependencies object. See devDependencies, below.
See semver for more details about specifying version ranges.
请不要在您的依赖对象中放置testharnesses或transpilers。请看下面的devDependencies。
ps:testharnesses测试实例工具,transpilers编译es6的工具
version Must match version exactly
版本必须精确匹配
>version Must be greater than version
>大于指定版本
>=version etc
>=大于等于指定版本
<version
<=小于指定版本
<=version
<=小于等于指定版本
~version "Approximately equivalent to version" See semver
~近似于版本 例如2.1.1版本 他的近似版本类似 2.1.x x任意
^version "Compatible with version" See semver
^兼容版本
1.2.x 1.2.0, 1.2.1, etc., but not 1.3.0
例如1.2.x 1.2.0, 1.2.1, 等., 但1.3.0就不是了
http://... See 'URLs as Dependencies' below
* Matches any version
*匹配任意版本
"" (just an empty string) Same as *
""(空字符串)和*一样
version1 - version2 Same as >=version1 <=version2.
version1 - version2 例如 >=version1 <=version2. 大于等于version1小于等于version2
range1 || range2 Passes if either range1 or range2 are satisfied.
range1 || range2 例如1.2.1||2.2.1 这两个版本都可以。
git… See ‘Git URLs as Dependencies’ below
git方式
user/repo See ‘GitHub URLs’ below
github方式
tag A specific version tagged and published as tag See npm-dist-tag
通过一个版本标记类似,tag是我们发布包做的标记。
npm install name@tag
path/path/path See Local Paths below
通过本地安装
For example, these are all valid:
示例
{ "dependencies" :
{ "foo" : "1.0.0 - 2.9999.9999"
, "bar" : ">=1.0.2 <2.1.2"
, "baz" : ">1.0.2 <=2.3.4"
, "boo" : "2.0.1"
, "qux" : "<1.0.0 || >=2.3.1 <2.4.5 || >=2.5.2 <3.0.0"
, "asd" : "http://asdf.com/asdf.tar.gz"
, "til" : "~1.2"
, "elf" : "~1.2.3"
, "two" : "2.x"
, "thr" : "3.3.x"
, "lat" : "latest"
, "dyl" : "file:../dyl"
}
}
我们再看一下安装规范
npm install <name>@<version>
指定安装的package 版本
npm install (with no args in a package dir)
npm install <tarball file>
npm install <tarball url>
npm install <folder>
npm install [@<scope>/]<name> [--save|--save-dev|--save-optional] [--save-exact]
npm install [@<scope>/]<name>@<tag>
npm install [@<scope>/]<name>@<version>
npm install [@<scope>/]<name>@<version range>
npm i (with any of the previous argument usage)
好了 说重点 安装我们的webpack1
npm install webpack@^1.* --save-dev
额外赠送
npm init 会引导你创建一个package.json文件,包括名称、版本、作者这些信息等
npm remove
npm update
npm ls 列出当前安装的了所有包
npm root 查看当前包的安装路径
npm root -g 查看全局的包的安装路径