"next"在package.json依赖项中到底意味着什么?

zok*_*zok 24 dependencies npm package.json

究竟什么是未来中的package.json依赖意味着什么呢?

"dependencies": {
  "react": "^15.4.2",
  "react-dom": "^15.4.2",
  "react-router-dom": "next"
}
Run Code Online (Sandbox Code Playgroud)

Mic*_*ich 16

某些项目使用下一个标记来标识即将发布的版本.默认情况下,除了最新版本之外,没有标签对npm本身有任何特殊意义.

NPM文档


chr*_*isz 14

具体来说,根据文档,我发现这有用:

默认情况下,npm使用最新标记来标识软件包的当前版本,npm install(不带任何@或@说明符)安装最新标记.通常,项目仅对稳定版本使用"最新"标记,对不稳定版本(如预发布版本)使用其他标记.

某些项目使用下一个标记来标识即将发布的版本.

默认情况下,除了最新版本之外,没有标签对npm本身有任何特殊意义.

所以,例如,我有一些与npm本身相关的问题产生了npm ERR!错误:EACCES:权限被拒绝包安装上的错误,我首先通过恢复到早期版本的npm(从5.4.0)更正:

npm install -g npm@5.3.0
Run Code Online (Sandbox Code Playgroud)

但是npm也是在其发行版使用"next"标签的那些软件包之一,所以为了利用最新但不是正式的"稳定版本",你还可以运行:

npm install -g npm@next
Run Code Online (Sandbox Code Playgroud)

其中安装了5.5.1

正在运行:npm show npm versions --json显示以下版本历史记录,以了解确切安装的内容:[..."5.3.0","5.4.0","5.4.1","5.4.2","5.5.0", "5.5.1"]