.npmrc、process.env、npm、yarn、pnpm 之间的关系

用户文件夹 ~/.npmrc

min-release-age=3
prefix=/Users/xuxiaowei/node_global
cache=/Users/xuxiaowei/node_cache

当前工作区 .npmrc

apple=1

当前工作区 index.js

console.log('process.env.npm_config_global_prefix:', process.env.npm_config_global_prefix)
console.log('process.env.npm_config_noproxy:', process.env.npm_config_noproxy)
console.log('process.env.npm_config_local_prefix:', process.env.npm_config_local_prefix)
console.log('process.env.npm_config_globalconfig:', process.env.npm_config_globalconfig)
console.log('process.env.npm_config_userconfig:', process.env.npm_config_userconfig)
console.log('process.env.npm_config_npm_version:', process.env.npm_config_npm_version)
console.log('process.env.npm_config_cache:', process.env.npm_config_cache)
console.log('process.env.npm_config_user_agent:', process.env.npm_config_user_agent)
console.log('process.env.npm_config_prefix:', process.env.npm_config_prefix)

console.log('process.env.npm_package_config_apple:', process.env.npm_package_config_apple)
console.log('process.env.npm_package_json:', process.env.npm_package_json)
console.log('process.env.npm_package_name:', process.env.npm_package_name)

console.log('process.env.APPLE:', process.env.APPLE)
console.log('process.env.apple:', process.env.apple)
console.log('process.env.NPM_CONFIG_APPLE:', process.env.NPM_CONFIG_APPLE)
console.log('process.env.npm_config_apple:', process.env.npm_config_apple)
console.log('process.env.NPM_PACKAGE_CONFIG_APPLE:', process.env.NPM_PACKAGE_CONFIG_APPLE)
console.log('process.env.npm_package_config_apple:', process.env.npm_package_config_apple)

当前工作区 package.json

{
  "name": "npmrc-env",
  "version": "1.0.0",
  "scripts": {
    "start": "node index.js"
  }
}

测试 npm run start

npm run start
/Users/xuxiaowei/node_global/bin/npm run start
npm warn Unknown project config "apple". This will stop working in the next major version of npm. See `npm help npmrc` for supported config options.

> npmrc-env@1.0.0 start
> node index.js

process.env.npm_config_global_prefix: /Users/xuxiaowei/node_global
process.env.npm_config_noproxy: 
process.env.npm_config_local_prefix: /Users/xuxiaowei/IdeaProjects/github.com/xuxiaowei-com-cn/gitmoji-skill
process.env.npm_config_globalconfig: /Users/xuxiaowei/node_global/etc/npmrc
process.env.npm_config_userconfig: /Users/xuxiaowei/.npmrc
process.env.npm_config_npm_version: 11.14.0
process.env.npm_config_cache: /Users/xuxiaowei/node_cache
process.env.npm_config_user_agent: npm/11.14.0 node/v22.22.3 darwin arm64 workspaces/false
process.env.npm_config_prefix: /Users/xuxiaowei/node_global
process.env.npm_package_config_apple: undefined
process.env.npm_package_json: /Users/xuxiaowei/IdeaProjects/github.com/xuxiaowei-com-cn/gitmoji-skill/package.json
process.env.npm_package_name: npmrc-env
process.env.APPLE: undefined
process.env.apple: undefined
process.env.NPM_CONFIG_APPLE: undefined
process.env.npm_config_apple: 1
process.env.NPM_PACKAGE_CONFIG_APPLE: undefined
process.env.npm_package_config_apple: undefined

Process finished with exit code 0

测试 pnpm run start

/Users/xuxiaowei/node_global/bin/pnpm run start

> npmrc-env@1.0.0 start /Users/xuxiaowei/IdeaProjects/github.com/xuxiaowei-com-cn/gitmoji-skill
> node index.js

process.env.npm_config_global_prefix: undefined
process.env.npm_config_noproxy: undefined
process.env.npm_config_local_prefix: undefined
process.env.npm_config_globalconfig: /Users/xuxiaowei/Library/Preferences/pnpm/rc
process.env.npm_config_userconfig: undefined
process.env.npm_config_npm_version: undefined
process.env.npm_config_cache: /Users/xuxiaowei/node_cache
process.env.npm_config_user_agent: pnpm/10.33.2 npm/? node/v22.22.3 darwin arm64
process.env.npm_config_prefix: /Users/xuxiaowei/node_global
process.env.npm_package_config_apple: undefined
process.env.npm_package_json: /Users/xuxiaowei/IdeaProjects/github.com/xuxiaowei-com-cn/gitmoji-skill/package.json
process.env.npm_package_name: npmrc-env
process.env.APPLE: undefined
process.env.apple: undefined
process.env.NPM_CONFIG_APPLE: undefined
process.env.npm_config_apple: 1
process.env.NPM_PACKAGE_CONFIG_APPLE: undefined
process.env.npm_package_config_apple: undefined

Process finished with exit code 0

测试 yarn run start

/Users/xuxiaowei/node_global/bin/yarn run start
yarn run v1.22.22
$ node index.js
process.env.npm_config_global_prefix: undefined
process.env.npm_config_noproxy: undefined
process.env.npm_config_local_prefix: undefined
process.env.npm_config_globalconfig: undefined
process.env.npm_config_userconfig: undefined
process.env.npm_config_npm_version: undefined
process.env.npm_config_cache: /Users/xuxiaowei/node_cache
process.env.npm_config_user_agent: yarn/1.22.22 npm/? node/v22.22.3 darwin arm64
process.env.npm_config_prefix: /Users/xuxiaowei/node_global
process.env.npm_package_config_apple: undefined
process.env.npm_package_json: undefined
process.env.npm_package_name: npmrc-env
process.env.APPLE: undefined
process.env.apple: undefined
process.env.NPM_CONFIG_APPLE: undefined
process.env.npm_config_apple: 1
process.env.NPM_PACKAGE_CONFIG_APPLE: undefined
process.env.npm_package_config_apple: undefined
✨  Done in 0.09s.

Process finished with exit code 0