gpt4 book ai didi

javascript - 如何为项目指定本地版本的 Node?

转载 作者:搜寻专家 更新时间:2023-10-31 22:58:34 26 4
gpt4 key购买 nike

我有一个项目,我们试图让 Node 在多个开发人员的机器上运行。问题是并非所有开发人员都是 Node(甚至 JavaScript)开发人员,我们希望确保他们拥有运行特定项目所需的 Node 版本(开发人员将在他们的机器上拥有多个 Node 项目)。

我阅读了 package.json 的“engines”字段,但我似乎找不到任何方法来安装我需要的 Node 版本。为了测试,我通过 NVM 将我当前的 Node 版本设置为 v0.10.29,创建了一个 package.json 指定 v0.11.13 的必要引擎,并尝试通过 node 命令以及通过package.json 定义的 npm start 命令。

blackjack:node-engines-test sent1nel$ node -v
v0.10.29
blackjack:node-engines-test sent1nel$ cat package.json
{
"name": "node-engines-test",
"version": "0.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"engineStrict": true,
"engines": {
"node": "v0.11.13"
},
"start": "node index.js",
"author": "",
"license": "ISC"
}
blackjack:node-engines-test sent1nel$ cat index.js
console.log('Version: ' + process.version);
blackjack:node-engines-test sent1nel$ node index.js
Version: v0.10.29
blackjack:node-engines-test sent1nel$ npm start
blackjack:node-engines-test sent1nel$

npm install 似乎也不关心 Node 引擎版本。

blackjack:node-engines-test sent1nel$ npm install
npm WARN package.json node-engines-test@0.0.0 No description
npm WARN package.json node-engines-test@0.0.0 No repository field.
npm WARN package.json node-engines-test@0.0.0 No README data
blackjack:node-engines-test sent1nel$ node -v
v0.10.29

什么给了?!

最佳答案

npm 注册表包含一个名为“Node ”的包。它是一个常规的 npm 包,仅包含 Node.js 二进制文件。

因此,在您的相关目录中运行:

npm install node@your.desired.version --save-exact

然后,将脚本放入您的package.json,如下所示:

"scripts": {
"v": "node -v"
}

要验证,请在项目根目录的终端中运行 node -v,您应该会看到您在计算机上设置的版本。通过运行 npm run v 进行比较,您应该会看到为项目设置的版本。这样,您可以无缝移动文件系统并执行各种构建,而无需更改全局 Node 配置。

原则上,每个带有 npm 包的可执行文件都链接到项目中的本地二进制文件目录。这意味着当我们安装这样一个包时,我们可以在里面找到它的可执行文件的链接。

注意:设置 Node engine建议 - “此字段仅供引用,仅当您的包作为依赖项安装时才会产生警告。”

关于javascript - 如何为项目指定本地版本的 Node?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24869959/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com