【问题标题】:How to hide variables in package.json如何在 package.json 中隐藏变量
【发布时间】:2021-03-19 08:28:33
【问题描述】:

我的 package.json 文件中有以下脚本

"docker-build": "docker build -t mouchin/my-image-name .",
    "docker-push": "docker push mouchin/my-image-name:latest",
    "deploy-server": "ssh root@myserverip 'docker pull mouchin/my-image-name:latest'",
    "deploy": "npm run docker-build && npm run docker-push && npm run deploy-server"

问题是我想隐藏 mouchin/my-image-nameroot@myserverip

使用某种 env,也许将我的变量保存在 .env.prod 中,但我不知道是否可以将保存在那里的变量直接读入 package.json

【问题讨论】:

  • 您可以编写自己的小脚本来从 cli 读取 args 或读取版本控制中忽略的 .env 文件。

标签: reactjs package.json


【解决方案1】:

您可以在 rpm 脚本中使用环境变量,就像在命令行上执行命令一样(例如 $SSH_HOST)。但是,这些变量需要直接在执行 nom 脚本的 shell 中设置。

现在,为了从加载的 env 文件中获取环境变量,您必须手动执行此操作。例如使用这样的 sn-p:

if [ ! -f .env ]
then
export $(cat .env | xargs)
fi

Source

要在任何其他脚本之前执行此操作,您可以使用 npm 的内置 lifecylce scripts

也许,您还想更改 sn-p 代码以加载一个或另一个 .env 文件,以防您有一个用于生产,一个用于开发。您可能可以为此使用环境变量NODE_ENV,因为它在大多数设置中都使用,但是最后一步实际上取决于您的构建设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-22
    • 2017-09-28
    • 2012-11-05
    • 1970-01-01
    • 2022-10-31
    • 2013-08-19
    相关资源
    最近更新 更多