Da'sBlog

npm版本说明及安装范围版本

最近安装测试环境需要安装webpack1版本。但是用cnpm安装的时候默认已经是2.6.1了

那么我们怎么安装指定版本呢。

Semver语义化版本控制规范

首先node采用semver规范,感兴趣的可以研究下。在这我们要明白版本号。
http://semver.org/lang/zh-CN/

版本格式:主版本号.次版本号.修订号,版本号递增规则如下:
主版本号:当你做了不兼容的API 修改,
次版本号:当你做了向下兼容的功能性新增,
修订号:当你做了向下兼容的问题修正。
先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸
例如1.2.19 1是版本号 ,2是次版本号,19是修订号

我们看看我们配置的依赖包

1
2
3
4
"devDependencies": {
"rimraf": "^2.6.1",
"webpack": "^2.6.1"
}

其中^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方式

1
2
3
4
5
git://github.com/user/project.git#commit-ish
git+ssh://user@hostname:project.git#commit-ish
git+ssh://user@hostname/project.git#commit-ish
git+http://user@hostname/project/blah.git#commit-ish
git+https://user@hostname/project/blah.git#commit-ish

user/repo See ‘GitHub URLs’ below

github方式

1
2
3
4
5
6
7
8
9
{
"name": "foo",
"version": "0.0.0",
"dependencies": {
"express": "expressjs/express",
"mocha": "mochajs/mocha#4727d357ea",
"module": "user/repo#feature\/branch"
}
}

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

通过本地安装

1
2
3
4
5
6
{
"name": "baz",
"dependencies": {
"bar": "file:../foo/bar"
}
}

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 查看全局的包的安装路径

坚持原创技术分享,您的支持将鼓励我继续创作!