gpt4 book ai didi

node.js - 从 Node.js 脚本中读取 npm 配置值

转载 作者:搜寻专家 更新时间:2023-10-31 23:29:21 25 4
gpt4 key购买 nike

在 Node.js 中,我想读取 npm 用来确定包下载位置的 registry 属性的值。

const registry = someApi.get('registry');

我想知道这样我就可以创建一个 preinstall确保开发人员通过本地 Artifactory 下载软件包的脚本实例而不是直接来自 npm.org。

const EXPECTED_REGISTRY = 'https://example.com/artifactory'
const registry = someApi.get('registry');
if (registry !== EXPECTED_REGISTRY) {
console.log('Please configure your .npmrc to use Artifactory');
console.log('See http://example.com/instructions');
process.exit(1);
}

一种方法是使用 npm config list --json。必须有一个 API 会给我相同的结果。我只是找不到它。

最佳答案

虽然已经有一个可接受的答案,但我会为后代发布一个替代答案。

如果您使用 npm 运行脚本命令和脚本添加到 scripts您的 package.json 文件的属性,那么您的 NPM 配置属性应该可以通过模式 process.env.npm_config_* 被您的 NodeJS 脚本访问.

例如,给定这个 package.json 文件:

{
"scripts": {
"start": "node -p \"process.env.npm_config_foo\""
}
}

当运行以下命令时:

npm config set foo bar
npm start

输出是:

> @ start /Users/anonymous/projects/my-package
> node -p "process.env.npm_config_foo"

bar

请注意,如果您的 scripts property 不是 NPM 的知名属性之一(例如 teststart ),您需要使用 npm run <script-name>而不是 npm <script-name> .

引用:https://docs.npmjs.com/misc/config

关于node.js - 从 Node.js 脚本中读取 npm 配置值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48158126/

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