【问题标题】:REACT_APP_* vs NODE_PATH Environment VariablesREACT_APP_* 与 NODE_PATH 环境变量
【发布时间】:2018-07-11 16:09:53
【问题描述】:

常规 CRA 环境变量(必须以 REACT_APP_ 开头)和 NODE_PATH 变量(用于避免必须使用相对路径进行导入、../../../foo 等)之间有什么区别? )

根据我的测试,没有任何变量可以使用,除非它们以 REACT_APP 开头,那么 NODE_PATH 变量如何像其他不以 REACT_APP 开头的变量一样不被忽略?

【问题讨论】:

    标签: node.js reactjs environment-variables create-react-app


    【解决方案1】:

    NODE_PATH 是可访问的,因为它已添加到 react-scripts 的 Webpack 配置中。

    您可以在此处查看添加它的代码: https://github.com/facebook/create-react-app/blob/25184c4e91ebabd16fe1cde3d8630830e4a36a01/packages/react-scripts/config/env.js#L61

    您会在该文件中看到您还可以设置NODE_ENV,它设置您正在运行的环境(例如developmentstaging 等)以及PUBLIC_URL

    回答您关于差异的问题:

    NODE_PATH 允许您使用绝对路径进行导入。例如,您可以将 NODE_PATH 设置为以下内容:NODE_PATH=src:src/components:src/containers,然后在您的 React 代码中,您可以编写如下内容:import Button from 'button' 而不是 import Button from '../../../button',只要您在其中一个文件夹中有该模块srcsrc/componentssrc/containers 因为 create-react 应用程序将在这些文件夹中查找 button 模块。您实际上不会像使用 REACT_APP_* 变量那样在 React 代码中使用 NODE_PATH 变量。基本上,它会告诉您的应用在哪里寻找模块。

    REACT_APP_* 变量在构建时使用我链接到的文件中的 Webpack 配置注入到您的应用程序中。

    这个:const GRAPHQL_URI = REACT_APP_GRAPHQL_URI

    变成这样:const GRAPHQL_URI = https://example.com

    如果您的 .env 文件中有此内容:REACT_APP_GRAPHQL_URI = https://example.com

    【讨论】:

    • REACT_APP_testing=test 有效,但 NODE_PATH=src 不允许我导入
    猜你喜欢
    • 2016-04-14
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2015-08-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多