将自定义变量从 npm 脚本设置为 javascript
Posted
技术标签:
【中文标题】将自定义变量从 npm 脚本设置为 javascript【英文标题】:Setting custom variables from npm script to javascript 【发布时间】:2022-01-21 15:24:03 【问题描述】:可能是重复的,但有没有办法从 npm 脚本中设置变量,这些变量可以通过 process.env.CUSTOM_VAR
之类的方式在 javascript 中访问?
在我的脚本部分的 package.json 中,我添加了 "start": "react-native start --reset-cache"
,它工作正常,但现在我想做类似 "inspect": "INSPECT=1 react-native start --reset-cache"
的事情,并让它在 javascript 中访问。我用谷歌搜索了所有似乎都指向像上面那样添加它的东西,但它似乎不起作用。
感谢任何帮助!
【问题讨论】:
【参考方案1】:您可以有一个程序来读取process.argv
并根据该列表执行操作(process.argv 包含脚本启动的标志)
argvToEnv.js
//you can set the prefix to your liking
const prefix="*" //the start script may have many flags
//if any flag starts with a prefix, it will turn it into an env variable
let envList= //soon to be list of things env variables
for(let i=0;i<process.argv.length;i++)
let flag=process.argv[i]
if(flag.startsWith(prefix))
envList[process.argv[i++].substr(prefix.length)]=process.argv[i]
Object.keys(envList).forEach(key=>
process.env[key]=envList[key]
)
index.js
require('path/to/argvToEnv.js')
//whatever else you do in your main js file
启动脚本
"start": "react-native start --reset-cache *CUSTOM_VAR \"success hehe\""
【讨论】:
跟随这个到 t 但 process.argv 没有定义。无论我做什么,过程总是被定义为"env": "NODE_ENV": "development"
嗯.. 这很奇怪,process.argv 没有被定义?好吧,我知道那边发生了什么 D:以上是关于将自定义变量从 npm 脚本设置为 javascript的主要内容,如果未能解决你的问题,请参考以下文章
如何将自定义字体系列添加到 react-reader npm
将自定义元数据设置为 Google Cloud Storage 中的对象
将自定义 R 脚本部署为 Web 服务 Azure ML Studio
抛出错误 RangeError:将自定义日期设置为 react-datepicker 的 DatePicker 时时间值无效