首页>>前端>>Node->如何防止npm安装不支持的Node.js版本?

如何防止npm安装不支持的Node.js版本?

时间:2023-11-29 本站 点击:1

确保设置项目的使用特定的 Node.js 版本,使开发人员在 git clonegit pull 您的项目时,可以正常运行项目。

我们可以通过在 package.json中设置 engines 属性来指定版本范围。

{"engines":{"node":">=15.0.0"}}

许多项目定义了 engine 属性,但没有强制执行所需的 Node.js 版本。在不支持 Node.js 版本的项目中运行 npm install 时,将显示以下警告(EBADENGINE)。

$npminstall#npmWARNEBADENGINEUnsupportedengine{#npmWARNEBADENGINEpackage:'expamle@1.0.0',#npmWARNEBADENGINErequired:{node:'>=15.0.0'},#npmWARNEBADENGINEcurrent:{node:'v14.16.0',npm:'7.6.3'}#npmWARNEBADENGINE}

这就是 npm 在这个场景中所做的一切。它会显示警告,但不会失败并阻止用户继续操作。

如何防止不支持 Node.js 版本的 npm install

操作方法很简单,我们可以将一个本地 npm 配置文件(.npmrc)添加到模块/项目根目录中,并显式启用严格的 Node.js 引擎处理。

#.npmrcengine-strict=true

如果项目包含定义 engine-strict=true.npmrc,其 Node.js 未满足版本要求,则无法运行 npm install

注意:EBADENGINE 将从 WARN 变为 ERR,安装过程将失败,状态代码为 1

$npminstall#npmERR!codeEBADENGINE#npmERR!engineUnsupportedengine#npmERR!engineNotcompatiblewithyourversionofnode/npm:expamle@1.0.0#npmERR!notsupNotcompatiblewithyourversionofnode/npm:expamle@1.0.0#npmERR!notsupRequired:{"node":">=15.0.0"}#npmERR!notsupActual:{"npm":"7.6.3","node":"v14.16.0"}#npmERR!Acompletelogofthisruncanbefoundin:#npmERR!/Users/node_cache/.npm/_logs/2021-08-09T15_15_48_050Z-debug.log

在这方面,pnpm 与 npm 保持一致。

Yarn 呢?

Yarn 不需要额外的配置文件,默认情况下严格处理 engines 属性。这似乎是处理 Node.js 版本的正确方法。

$yarninstall#yarninstallv1.22.19#infoNolockfilefound.#[1/5]?Validatingpackage.json...#errorengine-test@1.0.0:Theengine"node"isincompatiblewiththismodule.Expectedversion">=15.0.0".Got"14.16.0"#errorFoundincompatiblemodule.#infoVisithttps://yarnpkg.com/en/docs/cli/installfordocumentationaboutthiscommand.

这就是防止开发人员使用不受支持的 Node.js 版本的项目所需要的一切!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:/Node/928.html