ReactJS Модуль не найден: не удается разрешить './static/js/myfile.js' - PullRequest
2 голосов
/ 25 января 2020

Я пытаюсь выучить React и использую "create-реагировать-приложение". Теперь у меня есть проблема, которую я нахожу очень странной и не могу решить.

У меня есть такая структура карты:

   administratie
   └─ public
      └─ static
         └─ img
         └─ js
   └─ src
      └─ 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 из папки stati c. В строке 26 я показываю изображение из папки stati c. Теперь изображение хорошо показано, но импорт дает мне ошибку:

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

Дата. Файл 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;
}

Любое понимание очень ценится!

1 Ответ

2 голосов
/ 25 января 2020

URL внутри тега <img> разрешается браузером во время выполнения. Вот почему изображение загружается нормально.

Однако файл Javascript, указанный в операторе import , будет разрешен во время компиляции.

React ищет модули в 'sr c' и node_modules * только 1016 * папок.

Неудачный оператор импорта:

import {format} из "./static/js/date.js"; // Ошибка

React выдает ошибку, поскольку / static / js / date. js не существует ни в 'sr c' или 'node_modules'

Чтобы код работал, дату . js можно скопировать в папку под Папка 'sr c' .

( node_modules - для зависимостей, загружаемых через 'npm install')

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...