这是我的package.json
:
"scripts": {
"start": "bash do_something.sh && jest",
"...": "..."
}
在我的程序包中,程序包根目录中有package.json
和do_something.sh
文件,在test_file.spec.ts
中有一个./src
模块。
因此,从CLI进行npm run start
首先使用bash运行shell脚本,然后在shell脚本完成时运行jest。到目前为止,这个工作正常。
但是,在FOO
内部(如do_something.sh
)和测试模块内部(如FOO="bar"
)有一个硬编码的常量,例如const FOO = "bar";
。我希望不必在每次运行时都更改两个文件中的常量,而可以通过以下操作从CLI进行设置:
npm run start --FOO=bar
然后,我想从package.json
中的npm脚本定义中截取该CLI参数,并将其设置为可在do_something.sh
shell脚本中以及在test_file.spec.ts
模块中访问的环境变量。
所以在package.json
中,我会做类似的事情:
"scripts": {
"start": "env FOO=$npm_config_FOO bash do_something.sh && jest",
"...": "..."
}
((我正在使用npm_config_
中的here方法)
然后从do_something.sh
内:
echo $FOO
并且在test_file.spec.ts
内:
console.log(process.env.FOO);
我想我已经快要开始运作了,只是我想了一些缺少的步骤。
我认为这与您所拥有的非常接近
"scripts": {
"start": "export FOO=\"$npm_config_FOO\"; bash do_something.sh && jest"
...
}
将要导出FOO
,它将在bash
和jest
环境中可用。