npm_config_xxx

复制代码
// package.json

{ "scripts": { "log": "node index.js", } }

// index.js 
function logProcessEnv(key){ console.log(`process.env['${key}']`, process.env[key]); } 

logProcessEnv('npm_config_foo');

问题:

`npm run log` 和 `yarn log` 有没有区别?

首先这里读到了npm_config_foo变量,那么这个变量怎么来的呢?

比如:

npm config set foo=123

设置变量 foo 为123, 同时会往 .npmrc (用户主目录) 写入 foo=123 的配置信息 (永久)

同时,nodejs脚本可以通过process.env.npm_config_foo读取到123

还有其他设置么?有 --xxx=yyy 的形式,优先级最高

npm run task --foo=123

yarn task 不支持 --foo=123

.npmrc

除了用户主目录外,项目根目录也可以设置.npmrc文件,自行配置foo,优先级高于全局.npmrc

复制代码
foo=123

yarn config

会往.yarnc写配置,写法和 npm config有所区别,不能有等号,不然整串被当成一个整体,设置为true

复制代码
yarn config set foo 123

.yarnrc

内容格式也不一样

foo 123

使用注意

用yarn run和用npm run读取的配置不同(读的.npmrc还是.yarnrc?)

当运行npm run log 时,读取的npm_config_foo 来自.npmrc

当运行yarn log时,读取的npm_config_foo来自.yarnrc (如果没有配置在.yarnrc,会读取.npmrc)

结论:别混用npm和yarn

相关推荐
满怀10158 分钟前
【HTML 全栈进阶】从语义化到现代 Web 开发实战
前端·html
东锋1.319 分钟前
前端动画库 Anime.js 的V4 版本,兼容 Vue、React
前端·javascript·vue.js
满怀101532 分钟前
【Flask全栈开发指南】从零构建企业级Web应用
前端·python·flask·后端开发·全栈开发
小杨升级打怪中1 小时前
前端面经-webpack篇--定义、配置、构建流程、 Loader、Tree Shaking、懒加载与预加载、代码分割、 Plugin 机制
前端·webpack·node.js
Yvonne爱编码1 小时前
CSS- 4.4 固定定位(fixed)& 咖啡售卖官网实例
前端·css·html·状态模式·hbuilder
SuperherRo2 小时前
Web开发-JavaEE应用&SpringBoot栈&SnakeYaml反序列化链&JAR&WAR&构建打包
前端·java-ee·jar·反序列化·war·snakeyaml
大帅不是我2 小时前
Python多进程编程执行任务
java·前端·python
前端怎么个事2 小时前
框架的源码理解——V3中的ref和reactive
前端·javascript·vue.js
Ciito2 小时前
将 Element UI 表格元素导出为 Excel 文件(处理了多级表头和固定列导出的问题)
前端·vue.js·elementui·excel
不爱吃饭爱吃菜3 小时前
uniapp微信小程序一键授权登录
前端·javascript·vue.js·微信小程序·uni-app