如何在包json或其他方式中使用env变量

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在包json或其他方式中使用env变量相关的知识,希望对你有一定的参考价值。

我刚刚创建了我的第一个React应用程序,但是最后我注意到我在一个地方重复了自己。我需要将homepage字段添加到package.json中,因为我将应用托管在一个子目录下。但是随后,我还需要为路由器添加与basename相同的主页。好吧,这意味着我可以更新一个,而忘记更新另一个,这不是DRY。

是否有办法将我的首页路径仅放在一个地方?也许在package.json中使用.env变量?

我的package.json (通知主页)

{
  "name": "react-app",
  "version": "0.1.0",
  "private": true,
  "homepage": "/react-app/build",  
  "dependencies": {
    ...
  },

以及也在我的.env文件中

REACT_APP_HOMEPAGE=/react-app/build

然后在我的路由器中,我需要添加这个

<Router basename={process.env.REACT_APP_HOMEPAGE}>

将我的首页路径放在两个地方并不是一个好主意。有什么办法可以在package.json文件中使用我的ENV变量,或者可以在我的应用程序中使用package.json变量?

答案

正如我在评论部分中已经提到的。它不是理想的处理方式,但是以下解决方案应该可以工作。相反,应该像在使用路由器的组件中那样在package.json中定义主页,然后可以导入package.json并从中读取homepage属性。如

    let packageJson = require('../path/to/package.json');
    packageJson.homepage

如果以后在package.json中需要使用该值,则可以执行类似操作

$npm_package_homepage.

您可以在package.json中找到有关使用变量的更多详细信息,Referencing variables in package.json这样,当需要编辑时,可以在package.json中的一个位置进行编辑,其他所有位置都将生效。

以上是关于如何在包json或其他方式中使用env变量的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 .env 文件中的环境变量来填写同一个 .env 文件中的其他环境变量

关于Lumen / Laravel .env 文件中的环境变量是如何生效的

如何创建片段以重复变量编号中的代码行

vue如何按照环境打包项目?如何在vue文件中使用process.env?

如何从片段中的 JSON 响应中的对象获取数据

如何在包内引用 Python 中的***模块?