gpt4 book ai didi

node.js - src 之外的文件的符号链接(symbolic link) node_modules

转载 作者:太空宇宙 更新时间:2023-11-03 22:07:33 27 4
gpt4 key购买 nike

在我的项目中,我使用 JSON 文件作为数据库(当前存储在我的计算机本地)。它由 Node.js 修改,并在导入中使用 React 呈现一些信息: import Data from 'myPath/appData.json';我无法将数据库放在 src 文件夹中,因为构建是静态的,而我的数据库必须是动态的。我收到此错误:

Failed to compile.
./src/components/Ligne1.jsx
Module not found: You attempted to import myPath/appData.json which falls outside of the project src/ directory. Relative imports outside of src/ are not supported. You can either move it inside src/, or add a symlink to it from project's node_modules/.

我现在请求您帮助如何添加符号链接(symbolic link)。我在 node_modules 中创建了文件夹“appData”:

const fs=require('fs');
fs.symlink('.src/','.node_modules/app/',e=>{});
import Data from 'myPath/appData.json';

并在我的组件中使用它,例如:

import Data from 'appData';

但我也收到错误:

Failed to compile.
export 'default' (imported as 'Data') was not found in 'appData'

我正在寻找一种解决方案来忽略 src 文件夹外部导入的限制(符号链接(symbolic link)或其他内容:我已经尝试更改 webpack 的配置,但它没有改变任何内容)或其他解决方案来获取信息来 self 的 JSON 文件(当前存储在我的计算机本地)。

感谢您的宝贵时间。

最佳答案

此限制确保所有文件或模块(导出)都位于 src/ 目录内,实现位于 ./node_modules/react-dev-utils/ModuleScopePlugin.js,在以下代码行中。

// Resolve the issuer from our appSrc and make sure it's one of our files
// Maybe an indexOf === 0 would be better?
const relative = path.relative(appSrc, request.context.issuer);
// If it's not in src/ or a subdirectory, not our request!
if (relative.startsWith('../') || relative.startsWith('..\\')) {
return callback();
}

您可以通过以下方式删除此限制

  1. 更改这段代码(不推荐)
  2. 执行弹出,然后从目录中删除ModuleScopePlugin.js
  3. 或从 ./node_modules/react-scripts/config/webpack.config.dev 中注释/删除 const ModuleScopePlugin = require('react-dev-utils/ModuleScopePlugin');。 js

PS:谨防eject的后果.

关于node.js - src 之外的文件的符号链接(symbolic link) node_modules,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51357649/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com