在“ npm start”中使用〜/ .bashrc中的环境变量?

res*_*ive 5 bash node.js npm

抱歉,如果这是重复的。我试图找到一个类似的问题,但没有。细目如下:

我需要在正在构建的程序包中使用秘密密钥,并且我不想发布它,因此我试图将其设置为本地bash环境变量。在我的.bashrc文件中,我有这个:

# Obviously this is not the REAL key, just an example
MY_KEY="1111111111111111"
Run Code Online (Sandbox Code Playgroud)

然后在我的Gulpfile中,我有一个名为“ dev”的任务。为了简单起见,假设它看起来像这样:

gulp.task('dev', function () {
  console.log(process.env.SECRET_KEY);
});
Run Code Online (Sandbox Code Playgroud)

然后,为了使密钥进入环境,我的package.json中包含以下内容:

"scripts": {
  "start": "SECRET_KEY=$MY_KEY gulp dev"
}
Run Code Online (Sandbox Code Playgroud)

所以问题是,当我运行命令时npm start,我的gulp任务记录undefined了密钥。但是,当我手动运行命令时SECRET_KEY=$MY_KEY gulp dev,gulp任务将记录日志1111111111111111。因此,由于某种原因,npm start无法正确访问我的bash变量并将其传递到Node环境中。有没有办法使这项工作?

Cha*_*ffy 6

这只是创建一个shell 变量,而不是环境变量:

MY_KEY="1111111111111111"
Run Code Online (Sandbox Code Playgroud)

将该 shell 变量导出到环境中:

export MY_KEY
Run Code Online (Sandbox Code Playgroud)