从当前包外部的目录导入

import from a directory outside the current package

提问人:user4893295 提问时间:10/30/2023 最后编辑:user4893295 更新时间:10/31/2023 访问量:26

问:

我有一个服务器和一个客户端文件夹,它们有自己的package.json,如下所示:

home
├── server
│   ├── package.json
│   └── src
│        └── constants.js
└── client
    ├── package.json
    └── src
         └── index.js

我正在尝试将一些常量从我的服务器包导入到我的 React 客户端中

服务器/src/常量.js

export const test = 'hello'

客户端/src/index.js

import { test } from '../../server/src/constants.js'

我怎样才能做到这一点而没有错误?

我不确定它目前在做什么,因为它似乎正在拾取文件,我在浏览器控制台中得到这个:.env

未捕获的 ReferenceError:未定义进程 在。。/server/node_modules/dotenv/lib/env-options.js

也许这不是最好的方法?我可以通过 API 调用传递它,但我试图保持简单,而不是依赖 API(出于版本检查等原因)......

编辑:我想问题似乎是它一旦越过“服务器”的根目录就会调用 dotenv。这会抛出一个错误,因为它不会针对 react 进行编译。因此,也许问题出在dotenv上,以及如何为其根目录之外的文件禁用它?

reactjs node.js vite dotenv

评论

0赞 Wyck 10/31/2023
您是否需要在 webpack 中浏览器化模块或提供环境变量?请参见:未捕获的 ReferenceError:未定义进程process
0赞 user4893295 11/1/2023
这看起来是正确的......虽然我真的不需要任何环境变量,而且我不确定它为什么要尝试使用它们。我所要做的就是从我的常量文件导入。
0赞 Wyck 11/1/2023
你为什么要尝试在浏览器项目中使用 dotenv?无法在该平台上获取环境变量。我想您可以在 webpack 步骤中访问构建系统的环境变量。另外,也许你应该阅读 是否可以在 react 项目中使用 dotenv ?
1赞 user4893295 11/2/2023
我不是想使用 dotenv。这就是重点!我正在尝试导入文件,仅此而已。它恰好位于“server”目录中,因为它是服务器和客户端都需要的文件。出于某种原因,它调用了 dotenv,我绝对不希望它这样做!
0赞 Wyck 11/2/2023
我想你可以先看看客户端中的哪个模块依赖于 dotenv。然后,您也许能够弄清楚 dotenv 是如何到达那里的(可能是无意中),并考虑如何删除它。您的客户端是否依赖于与服务器共享的任何其他子模块?也许您有其他服务器端代码污染了您的客户端?npm list --all

答:

0赞 Mark Schultheiss 10/30/2023 #1

您的消息包含您需要的所有线索,例如向上移动一个文件夹/目录,然后找到,但正如您在图表中看到的那样,它不存在。../servernode_modules

你需要或者只是一个简单的从根源。../../../server/server

评论

0赞 user4893295 10/30/2023
我不确定我是否遵循。客户端和服务器都有一个node_modules,我只是将它们排除在外,因为它们不是其中的一部分 - 我不是在尝试在两者之间导入环境变量,只是常量中的内容.js
0赞 user4893295 10/31/2023
这条路绝对是正确的。我可以通过CMD+单击从调用文件导航到它
0赞 Mark Schultheiss 10/31/2023
也许错误消息更像是一个不同的问题,更像是一种干扰;如果没有更多细节,很难说。
0赞 user4893295 10/31/2023
我想问题似乎是它一旦越过“服务器”的根目录就会调用 dotenv。这会抛出一个错误,因为它不会针对 react 进行编译。因此,也许问题出在dotenv上,以及如何为其根目录之外的文件禁用它?
0赞 Mark Schultheiss 10/31/2023
我不认为自己是这 4 种技术与路由相结合的专家,无法提供有效/更好的答案;我希望我在这里得到更好的帮助。