我正在尝试通过npm脚本运行一个npm包(Apollo Rover)。包本身的命令需要一个访问令牌,我不喜欢直接在package.json中使用它,所以想把它拉出来,并包含在一个不会被提交的.env中。
我尝试过使用cross-env和cross-env-shell,但是我的测试不起作用。
.环境
ACCESS_TOKEN="jdaksc8ds7vp98vwy8"
package.json
{
"scripts": {
"test": "cross-env-shell \"echo Hello $ACCESS_TOKEN\""
}
}
输出量
% npm run test
> test@0.0.1 test
> cross-env-shell "echo Hello $ACCESS_TOKEN"
Hello
我还需要在基于 *nix的系统和Windows上运行这个功能。
2条答案
按热度按时间nxagd54h1#
cross-env用于在运行节点命令时设置环境变量inline。在您的情况下,您已在
.env
文件中定义了变量,这是不同的。当从
.env
文件填充环境变量时,您需要使用dotenv或类似命令。在您的特定情况下,我可以推荐使用env-cmd和
-f
选项作为更简单的选项。mctunoxg2#
您需要正确地计算
.env