我使用以下方法获取 NPM 缓存位置:
cache_location="$(npm get cache)"
但是,这个值是否也由我可以读取的环境变量表示?
像NPM_CACHE_LOCATION
什么?
我使用以下方法获取 NPM 缓存位置:
cache_location="$(npm get cache)"
但是,这个值是否也由我可以读取的环境变量表示?
像NPM_CACHE_LOCATION
什么?
简短回答:这取决于您何时/如何访问它,因为在 npm未运行NPM_CACHE_LOCATION
时没有可用的环境变量(例如 ) 。
您需要调用npm config get cache
or npm get cache
,就像您当前正在做的那样。
但是,一旦 npm 运行,配置参数就会被放入带有npm_
前缀的环境中。
下面演示了这...
作为找出 npm 放入环境中的 env 变量的一种方法,您可以在 npm-script中使用printenv 。例如在package.json添加:
...
"scripts": {
"print-env-vars": "printenv | grep \"^npm_\""
},
...
然后运行以下命令:
npm run print-env-vars
在控制台的生成日志中(即运行后npm run print-env-vars
),您会看到npm_config_cache
列出了环境变量。它的内容如下:
npm_config_cache=/Users/UserName/.npm
在文档中它指出:
配置
配置参数放在带有
npm_config_
前缀的环境中。例如,您可以root
通过检查npm_config_root
环境变量来查看有效配置。
注意:printenv | grep "^npm_"
直接通过 CLI 运行不会返回任何内容。
您可以通过 npm-script 访问缓存位置,例如:
"scripts": {
"cache-loc-using-bash": "echo $npm_config_cache",
"cache-loc-using-win": "echo %npm_config_cache%"
},
请参阅cross-var以了解如何使用跨平台语法。
通过Nodejs脚本访问 npm 缓存位置。例如:
const cacheLocation = process.env.npm_config_cache;
console.log(cacheLocation)
注意:需要通过 npm-script 调用此节点脚本process.env.npm_config_cache
才能使用。通过运行命令行调用它,例如node ./somefile.js
将返回undefined
- 这进一步表明带有_npm
前缀的参数仅在 npm 运行时被放入环境中。
不理想,但是您当然可以使用export设置自己的环境变量:
export NPM_CACHE_LOCATION="$(npm get cache)"
并取消设置以将其删除:
unset NPM_CACHE_LOCATION