如何从反应应用程序中的公共文件夹导入文件?

Joe*_*Joe 6 javascript reactjs

我在 public 文件夹中有一个 javascript 文件,我想将该文件导入文件夹 src/components 中的组件。

projectFolder
  publicFolder
    index.html
    recorder.js
  srcFolder
    componentsFolder
       Speech.js
       Speech.css
Run Code Online (Sandbox Code Playgroud)

但是我不能在我的组件中做这样的事情:

import Recorder from '../../public/recorder'
Run Code Online (Sandbox Code Playgroud)

因为我收到以下错误:

未找到模块:您试图导入项目 src/ 目录之外的 ../../public/recorder。不支持 src/ 之外的相对导入。您可以将其移动到 src/ 中,也可以从项目的 node_modules/ 中添加符号链接。

据我所知,不允许在 /src 目录之外导入,所以我想知道如何“添加符号链接”或者您是否知道其他修复方法。

djf*_*dev 1

我相信您正在使用 create-react-app ...这是 中包含的功能ModuleScopePlugin,您可以通过弹出应用程序并编辑您的 webpack 配置来禁用它(如本答案中所述)。

但请注意,该功能的存在是有原因的。create-react-app 构建工具仅处理 src/ 目录,因此这里之外的 JavaScript 将不会被 Babel 转译。此外,如果您使用像 Webpack 这样的捆绑器,您通常会尝试避免污染全局范围。因此,除非您有一个非常具体的原因需要这样做,否则我会说尝试移动它。