【问题标题】:ReactJS Module not found: Can't resolve './static/js/myfile.js'找不到 ReactJS 模块:无法解析 './static/js/myfile.js'
【发布时间】:2020-01-25 15:54:59
【问题描述】:

我正在尝试学习 React,我使用“create-react-app”。我现在有一个我觉得很奇怪但无法解决的问题。

我有一个这样的地图结构:

   administratie
   └─ public
      └─ static
         └─ img
         └─ js
   └─ src
      └─ content

在我的内容中,我有一个如下所示的 Content.js:

import React, { Component } from "react";

import "./Mut.css";
import { format } from "./static/js/date.js"; // Error

class Mut extends Component {
  constructor(props) {
    super(props);
    this.state = {
      datum: ""
    };
  }

  componentDidMount() {
    let today = format(new Date());
    this.setState({
      datum: today
    });
  }

  handleChange(event) {}

  render() {
    return (
      <main>
        <img src="./static/img/administratie-logo.png" alt="logo" />  // Is rendered as it should
      </main>
    );
  }
}

export default Mut;

在第 4 行,我从静态文件夹中导入了一个 .js 文件。在第 26 行,我显示了静态文件夹中的图像。现在图像显示得很好,但导入给了我错误:

./src/content/Mut.js
Module not found: Can't resolve './static/js/date.js' in 'C:\react-projects\administratie\src\content'

date.js 文件如下所示:

export function format(d) {
  let day = d.getDate().toString();
  if (day < 10) day = "0" + day;

  let month = (d.getMonth() + 1).toString();
  if (month.length === 1) month = "0" + month;

  const year = d.getFullYear().toString();

  return day + "-" + month + "-" + year;
}

非常感谢任何见解!

【问题讨论】:

  • 从“../public/static/js/date.js”导入{格式}; // 错误
  • 如果你在 src 文件夹中,你需要使用 ".." 来升级 - 当你在 administratie 中时 - 你可以去 public/static/js
  • 从“../public/static/js/date.js”导入{格式};给了我同样的错误
  • ok - 尝试添加'export default' - 而不是'export'
  • 为什么“./”(单点)与图像一起使用?

标签: reactjs webpack create-react-app


【解决方案1】:

&lt;img&gt; 标签内的 URL 在运行时由浏览器解析。这就是为什么图像加载正常。

但是,import 语句中指定的 Javascript 文件将在编译时解析。

React 仅在 'src'node_modules 文件夹中查找模块。

失败的导入语句是:

从“./static/js/date.js”导入{格式}; // 错误

React 抛出错误,因为 /static/js/date.js 不存在 'src''node_modules'

要使代码正常工作,可以将 date.js 文件复制到 'src' 文件夹。

node_modules 用于通过 'npm install' 下载的依赖项)

【讨论】:

  • 它有效。非常感谢您的解释 Gopinath。你让我开心!
猜你喜欢
  • 2021-01-23
  • 2021-09-12
  • 2017-10-23
  • 2021-04-05
  • 2019-08-13
  • 2023-03-11
  • 2021-10-16
  • 2021-11-04
  • 1970-01-01
相关资源
最近更新 更多