热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

为WebDev项目设置环境变量[如何使用]

设置环境变量是Web开发人员的最佳实践。但是对于大多数人来说,这似乎很麻烦,因此很少有人应用它。好吧,实际上并不那么困难,并
设置环境变量是Web开发人员的最佳实践。 但是对于大多数人来说,这似乎很麻烦,因此很少有人应用它。 好吧,实际上并不那么困难,并且在大多数情况下是有必要的,让我在本文中向您展示。

注意:在本文中,我将仅关注Javascript环境 ,稍后我可能会更新其他语言。

那么为什么有必要呢?

首先,这是出于安全原因。 显然,您不希望人们在我们的代码中看到我们的“ API密钥”或“加密板条”,对吗?

次要的,以获得更好的开发经验。 我们通常会为相关环境设置不同的数据库或服务器。 将这些地址放在代码中是一种选择,但是每次我们更改环境时都需要前后切换,这很痛苦。

好的,什么时候设置?

在创建项目文件夹之后,即刻。

等等...我们可以在项目上线之前进行设置吗? En…不。因为请记住,如果我们在项目中使用“ git”,则人们不仅可以看到我们的最终代码,还可以看到我们代码的整个历史。

好,那么我们该如何设置呢?

首先 ,在项目根文件夹中创建.env文件,并在其中放置至少一个变量以进行操作(当项目增长时,您始终可以添加更多变量)。 例如:

BASE_URL = http://localhost: 3000
NWE_VAR = 1234

注意:通常,将所有变量都设置为大写。

其次,启动项目,开始编写一些代码来测试环境变量。

像下面的例子:

console .log ( process .env .NEW_VAR );

是的, process.env前缀是访问环境变量的关键,我们可以在项目范围内应用此规则。

此时,我们可能会或可能不会从控制台看到结果(“ 1234”),如果是,请跳过以下步骤,否则继续进行。

第三,dotenv软件包安装到您的项目中。

# with npm
npm install dotenv
# or with Yarn
yarn add dotenv

并尽早在我们的代码中添加以下行,更多详细信息请参见此处 。

require ( 'dotenv' ) .config()

注意:由于设置环境变量是最佳做法,因此大多数Javascript框架或软件包已随附在其中。 (因此,您可能不需要执行上述步骤)

第四 ,忽略.env文件以避免它被“ git”记录或上传到Github。

.gitignore下行添加到我们的.gitignore文件中(如果没有则创建一个)

.env

注意: 此步骤很重要,应尽早进行 。 否则,我们之前所做的一切都是没有用的,因为每次提交时,“ git”都会记录文件。

另外,您可以考虑为不同的环境添加更多.env文件,例如:

.env.development.local
.env.test.local
.env.production.local

这便于以后查看所有设置。

好的,一旦这些.env文件在本地驱动器中安全了,就让我们继续在生产和测试环境中设置这些变量。

第五,在不同的环境中设置环境变量。

在大多数情况下,我们需要运行我们的应用程序的服务器已经带有环境变量的支持,例如Netlify或Heroku。

您需要做的只是在控制台面板中手动复制值。 (这可能是在CLI中执行此操作的一种方法,一旦找到它,我将在以后对其进行更新)。

在Netlify中设置

在Heroku中设置

如果您自己构建测试环境,或者只是使用上面的相同服务,请重复上面的相同过程。 (更多细节,我可能稍后再更新)

第六 ,如果您仍然无法使变量起作用,则可能存在一些其他因素的限制。

例如,如果由create-react-app创建的项目,则变量名称必须以REACT_APP_ prefix开头( 此处有更多详细信息 ),因此我们的.env文件可能需要更改名称,如下所示:

REACT_APP_BASE_URL = http://localhost: 3000
REACT_APP_NWE_VAR = 1234

类似的规则也可能适用于其他框架,请查阅其文档。

或者,您可能需要完全重新启动服务器。

yarn start

  • Pietro Rampazzo在Unsplash上的照片

最后的话……

最后,您可能想知道,该指南似乎并没有说明太多或太简单了……

好吧,这可能正是我的目的-设置它们确实非常简单,我们应该尽早这样做(即使在我们的第一个项目中)。

我看到太多,经常看到人们在其存储库中泄漏了API密钥……我忍不住写出这篇文章,^ z ^。

最后,由于我的经验有限,我不能保证上述步骤对每个项目的每个人都适用,但是如果可以,请帮助传播! 提前致谢!!!

(任何评论或建议都非常欢迎,一旦找到更好的解决方案,我会回来更新本文)

  • https://www.microverse.org/

From: https://hackernoon.com/how-to-setup-environment-variables-for-web-dev-projects-h83o3yfu



推荐阅读
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • CF:3D City Model(小思维)问题解析和代码实现
    本文通过解析CF:3D City Model问题,介绍了问题的背景和要求,并给出了相应的代码实现。该问题涉及到在一个矩形的网格上建造城市的情景,每个网格单元可以作为建筑的基础,建筑由多个立方体叠加而成。文章详细讲解了问题的解决思路,并给出了相应的代码实现供读者参考。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了如何使用Express App提供静态文件,同时提到了一些不需要使用的文件,如package.json和/.ssh/known_hosts,并解释了为什么app.get('*')无法捕获所有请求以及为什么app.use(express.static(__dirname))可能会提供不需要的文件。 ... [详细]
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 本文介绍了一个适用于PHP应用快速接入TRX和TRC20数字资产的开发包,该开发包支持使用自有Tron区块链节点的应用场景,也支持基于Tron官方公共API服务的轻量级部署场景。提供的功能包括生成地址、验证地址、查询余额、交易转账、查询最新区块和查询交易信息等。详细信息可参考tron-php的Github地址:https://github.com/Fenguoz/tron-php。 ... [详细]
  • 本文介绍了Sencha Touch的学习使用心得,主要包括搭建项目框架的过程。作者强调了使用MVC模式的重要性,并提供了一个干净的引用示例。文章还介绍了Index.html页面的作用,以及如何通过链接样式表来改变全局风格。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • node.jsrequire和ES6导入导出的区别原 ... [详细]
  • 使用nodejs爬取b站番剧数据,计算最佳追番推荐
    本文介绍了如何使用nodejs爬取b站番剧数据,并通过计算得出最佳追番推荐。通过调用相关接口获取番剧数据和评分数据,以及使用相应的算法进行计算。该方法可以帮助用户找到适合自己的番剧进行观看。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了使用FormData对象上传文件同时附带其他参数的方法。通过创建一个表单,将文件和参数添加到FormData对象中,然后使用ajax发送POST请求进行文件上传。在发送请求时,需要设置processData为false,告诉jquery不要处理发送的数据;同时设置contentType为false,告诉jquery不要设置content-Type请求头。 ... [详细]
author-avatar
buxin81588_416
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有