3

谈到版本管理时,Node.js 有时会让人感到困惑……

我正在尝试安排各种项目,就像我对 ruby​​ 项目所做的那样。例如:

使用红宝石,我可以创建文件,例如.rvmrc并填充类似的东西rvm --create use 1.9.3@my-app

这个东西专门创建并使用所有的gem来配置gemset。它允许为任何类型的项目提供各种选项,并在它们之间轻松切换。所以红宝石在一个地方做这件事。

我想为 node.js 项目实现这一点。

节点的工作方式不同。我想知道这方面的细节,尤其是每个节点版本管理工具的细节。

关键是要知道哪个版本管理工具针对哪个目标......

以及为什么有这么多。

更准确地说:我想npm install <package-name>选择节点版本。而在切换到其他版本后,这个安装的包会丢失,或者之前安装了不同的版本(或某些版本)。就像gemset工作一样。

4

2 回答 2

2

我也一直在寻找澄清:

  • 两者都允许在节点版本之间切换和安装。

  • nvm 会将不同的版本符号链接到 /usr/local/bin/node,并且 n 会将您的节点安装移动到路径 (/usr/local/bin/node)。

  • n 下载并安装二进制文件,nvm 从源代码下载、编译、安装。

我不完全理解您问题的后半部分,但是关于控制节点项目/应用程序,您可以使用npm install [package_name] --save-dev将您的 npms 保存在您的“项目”中。

这些 npm 模块版本 (^semver) 在您的 package.json 文件中得到详细说明,例如"gulp": "^3.8.5"不同于"gulp": "3.8.5"(后者特定于 v3.8.5,而 ^3.8.5 表示允许任何未来的 3 版本,但不允许 4.0。 0)

npm 和 gem 的区别在于 npm 将指定的包安装在本地 node_modules 文件夹中(当前工作目录使用--save-dev.

重要提示:运行 --save(而不是 --save-dev)会安装任何缺少的依赖项。

我希望这会有所帮助:o)

于 2015-09-16T23:41:38.290 回答
-1

刚刚尝试安装nvm,它适用于从一个版本切换到另一个版本。在它的标题中nave.sh说“#这个程序包含独角鲸的“海”程序的一部分,以及从蒂姆卡斯韦尔的“nvm”借来的位”,所以你可以尝试两者并看到最细微的区别。还要检查每个人和贡献者的“受欢迎程度”以获得一些见解)。还有一个nodeenv使用python,但我没有任何理由在这里使用python。所以,我的回答不会有太大的不同

于 2015-02-22T16:25:59.890 回答