node.js - 使用环境变量推送 repo

标签 node.js git

在我机器上的存储库中,我有一个名为 .env 的文件。这包含在我处理项目时用于测试的环境变量。

但是,当我推送到 Github 时,我不想包含这个文件。所以我将它添加到 .gitignore。我有另一个名为 .env.sample 的文件,其中包含供用户设置的空变量。

当使用 npm install 安装应用程序时,我有一个脚本将其从 .env.sample 移动到 .env

这给我带来了问题,因为当我测试并运行安装时,它会覆盖我原来的 .env。这是正常行为,但我忍不住认为有更好的方法可以阻止这种情况发生。

这很痛苦,因为就在我推送之前,我必须将 .env 重命名为 .env.sample 并清除开发变量。

知道如何做到这一点,这样我就不必在推送之前手动重命名文件了吗?

这是来自 package.json 的安装脚本:

"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack --config webpack.config.babel.js",
    "start": "npm run build && electron .",
    "postinstall": "bash postinstall.sh && mv .env.sample .env",
    "add-cors": "add-cors-to-couchdb"
  },

postinstall.sh 每次安装运行时都会运行以构建一些软件。我本可以将 mv 放入其中,这就是我可能会做的。

最佳答案

最简单的解决方案是不覆盖文件:

"postinstall": "bash postinstall.sh && cp -n .env.sample .env",

(请注意,我建议使用 cp 而不是 mv,这样您就不会删除默认文件)

另一种(常见的)方法是简单地要求用户这样做。与无论如何他必须执行的所有配置相比,这是一项轻松的任务。

关于node.js - 使用环境变量推送 repo ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38977099/

相关文章:

javascript - 检查 nedb 中是否存在特定行

git - `linkgit:git-var` 在哪里以及什么?

node.js - 如何使用 Grunt 指定文件顺序?

javascript - module.js 运行iron-node 时找不到模块

使用 Git 部署 PHP。我怎样才能让它更自动化?

git - 使用基于 xproj 的 ASP.NET Core 项目时,Azure 构建停止工作

Git - 服务器需要 git 吗?

Git 推送 : fatal: Out of memory, malloc 失败

node.js - 我正在尝试使用 .ebextension 配置在弹性 bean 堆栈上安装 pdftk 服务器,但无法安装

node.js - Mongoose 异步/等待查找然后编辑并保存?