node.js已在后端开发的最前沿已有十多年了,这主要是由于其可扩展性和有效的性能。每个新版本都带来了无数旨在简化开发的功能,而Node.js v20.6也不例外。本版本中的一个小但高度赞赏的功能是用于配置环境变量的内置.env
文件支持。
什么是.env文件?
环境变量是现代发展工作流的关键部分。它们可让您存储敏感的信息,应用程序配置,甚至运行时设置,从应用程序代码远离运行时。 .env
文件已成为管理这些变量的事实上的标准。虽然环境变量通常被注入生产容器中,但是在本地开发过程中,通常在.env.test
和.env.development
中具有变量。
它是如何工作的?
在v20.6之前,处理环境变量通常使用dotenv
(例如dotenv
)的外部库,该变量将解析.env
文件并将变量注入process.env
。使用此新功能,您可以将.env
文件作为参数直接传递给Node.js Runtime。
句法
应该将.env
文件格式化为INI文件,这意味着每行都包含一个用于环境变量的键值对。例如,您的.env
文件可能看起来像这样:
DB_URL=foo
JWT_SECRET=foo
LOG_LEVEL=debug
运行您的应用程序
您可以使用以下CLI命令来初始化Node.js应用程序,并使用预定义的配置:
node --env-file=config.env index.js
这将加载从config.env
的所有环境变量到您的应用程序的环境中。例如,您现在可以如下访问密码:
const DB_URL = process.env.DB_URL;
.env中的node_options
此新功能不仅停止处理您的自定义环境变量。它也扩展到内置Node.js选项。传统上,定义NODE_OPTIONS
将涉及将它们包括在您的package.json
中或在运行应用程序之前将它们设置在外壳中。有了这个新的内置.env
支持,您可以将node_options直接包含在.env
文件中。
例如,您的.env
文件可以包含:
NODE_OPTIONS=--experimental-modules --inspect
LOG_LEVEL=debug
为什么这很重要?
简化的工作流
此更改通过本质地纳入Node.js开发中已经是事实上的标准来简化开发人员的体验。
更少对外部软件包的依赖
通过将此功能纳入核心,Node.js减少了开发人员需要熟悉的第三方软件包的数量,从而更容易启动和运行。
统一配置
此功能还鼓励采用更统一的配置方法,将环境变量和节点选项带入一个易于管理的文件。
您可能仍然需要第三方图书馆才能前端
node.js 20.6凭借其内置的.env
支持简化了环境变量管理,但请务必注意,此功能不会扩展到反应和反应本机。这些框架在生产中不利用node.js运行时,并且有自己的构建过程和运行时间。结果,开发人员可能仍需要依靠现有方法来进行环境变量管理。例如,旧版React项目经常使用create-react-app
之类的工具,该工具以其自己的方式处理.env
文件,而React Native开发人员可能会转向react-native-config
等库。任何较新的项目都可能使用具有内置支持的Vite,Astro和Similiar。
node.js v20.6添加内置的.env
文件支持不仅仅是一个便利功能;这是在越来越多地受到Deno和Bun等新手影响的景观中保持竞争优势的战略举动。这些新兴技术已经重点关注开发人员的经验,从而推动Node.js在本地发展并纳入这种增强功能。此更新不仅是关于简化node.js中的应用程序开发;这也是要应对挑战并在快速不断发展的生态系统中设置高棒。