Node.js 利用环境变量推动回购
在我的机器上的repo中,我有一个名为Node.js 利用环境变量推动回购,node.js,git,Node.js,Git,在我的机器上的repo中,我有一个名为.env的文件。这包含了我在项目中进行测试的环境变量 但是,当我推到Github时,我不希望包含此文件。所以我把它添加到.gitignore。我有另一个名为.env.sample的文件,其中包含供用户设置的空变量 使用npm install安装应用程序时,我有一个脚本,可以将它从.env.sample移动到.env 这给我带来了一个问题,因为当我测试并运行安装时,它会覆盖我原来的.env。这是正常的行为,但我忍不住认为有更好的方法来阻止这种情况的发生 这很痛
.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"
},
每次运行install以构建某些软件时,都会运行
postinstall.sh
。我可以把mv
放在里面,我可能会这么做。最简单的解决方案是不覆盖文件:
"postinstall": "bash postinstall.sh && cp -n .env.sample .env",
(请注意,我建议使用cp
而不是mv
,这样您就不会删除默认文件)
另一个(常见的)方法是简单地要求用户这样做。与他必须执行的所有配置相比,这是一项轻松的任务。“我有一个脚本,可以将此从.env.sample移动到.env”。这个脚本应该只运行一次,或者它应该检测文件的存在并比较日期。文档中经常要求用户手动复制和编辑配置文件()。为了回答这个问题,我觉得我们应该看看安装脚本。@DenysSéguret补充道