Не могу поверить, что задаю очевидный вопрос, но в журнале консоли все равно появляется ошибка.
Консоль сообщает, что не может найти модуль в каталоге, но я проверял не менее 10 раз на наличие опечаток. В любом случае, вот код компонента.
Я хочу отобразить заголовок в корне
import React, { Component } from 'react'
import Header from './src/components/header/header'
import logo from './logo.svg'
import './App.css'
class App extends Component {
render() {
return (
<Header/>
);
}
}
export default App;
Это Header
компонент
import React, { Component } from 'react'
import ReactDOM from 'react-dom'
import navBar from './src/components/header/navBar'
import './src/css/header.css'
class Header extends Component {
render() {
return {
<div>
<div id="particles-js"></div>
<navBar/>
<Title/>
</div>
};
}
}
ReactDOM.render(<Header/>, document.getElementById('header'));
Я не менее 10 раз проверял, что модуль находится в этом месте ./src/components/header/header
, и это так (папка «header» содержит «header.js»).
Тем не менее, React по-прежнему выдает эту ошибку:
Не удалось скомпилировать
./src/App.js
Module not found: Can't resolve './src/components/header/header' in '/home/wiseman/Desktop/React_Components/github-portfolio/src'
npm test говорит то же самое.
javascript
reactjs
Владимир Йованович
источник
источник
export default Header;
в свой «заголовочный файл»import Header from './components/header/header'
без src. Путь к файлу определяется относительно пути к файлу импорта. Тогда вам нужно экспортироватьHeader
изheader.js
и исправленияApp.render
метода.components
папку за пределыsrc
папки, это говорит мне, что мне нужно изменитьnode_modules
файлы, что не является моим вниманием.import smth from './components/header/header'
же для этой строки,import navBar from './src/components/header/navBar'
он должен быть относительно текущего путиimport navBar from './navBar'
Ответы:
Обычно мы используем
import
относительный путь..
а также..
аналогичны тому, как мы используем для навигации,terminal
например,cd ..
выход из каталога иmv ~/file .
перемещениеfile
в текущий каталог.В твоем случае,
App.js
находится вsrc/
каталоге, аheader.js
находится вsrc/components
. Чтобыimport
вы сделалиimport Header from './components/header'
. Это примерно соответствует тому, что в моем текущем каталоге найдите папку компонентов, содержащую файл заголовка.Теперь, если от
header.js
, вам нужноimport
что-то отcard
, вы сделаете это.import Card from '../containers/card'
. Это перевести, выйти из моего текущего каталога, найти контейнеры с именами папок, в которых есть файл карты.Что касается
import React, { Component } from 'react'
, это не начинается с./
или../
или/
поэтому узел начнет искать модульnode_modules
в определенном порядке, пока неreact
будет найден. Для более детального понимания его можно прочитать здесь .источник
Если вы создаете приложение с помощью response-create-app, не забудьте установить переменную среды:
Или добавить в
.env
файл в корневую папку;источник
App.css
вsrc/
и сделалimport App.css
. Но это дало мне ошибку в вопросе. Этот ответ решил проблему.Добавление в
NODE_PATH
качестве переменной среды в.env
устарело и заменяется добавлением"baseUrl": "./src"
, чтобыcompilerOptions
вjsconfig.json
илиtsconfig.json
.Справка
источник
Удалил файл package-lock.json и запустил
Читать дальше
источник
в моем случае сообщение об ошибке было
Module not found: Error: Can't resolve '/components/body
Пока все было в правильном каталоге.
Я обнаружил, что переименование
body.jsx
наbody.js
решить эту проблему!Поэтому я добавил этот код,
webpack.config.js
чтобы разрешитьjsx
какjs
module.exports = { //... resolve: { extensions: ['.js', '.jsx'] } };
И тогда ошибка сборки исчезла!
источник
Я думаю, это двойное использование заголовка. Я просто пробовал что-то подобное и тоже вызвал проблемы. Я написал свой компонентный файл с заглавной буквы, чтобы он соответствовал остальным, и это сработало.
import Header from './src/components/header/header';
Должно быть
import Header from './src/components/header/Header';
источник
./components/header/header
я делал./components/header
... Я слишком стар для таких ошибок, лололУ меня была аналогичная проблема.
Причина:
import HomeComponent from "components/HomeComponent";
Решение:
import HomeComponent from "./components/HomeComponent";
ПРИМЕЧАНИЕ:
./
было до компонентов. Вы можете прочитать сообщение @Zac Kwan выше о том, как использоватьimport
источник
Я столкнулся с той же проблемой, когда создал новое приложение для реагирования. Я попробовал все варианты в https://github.com/facebook/create-react-app/issues/2534, но это не помогло. Мне пришлось изменить порт для нового приложения, и тогда все заработало. По умолчанию приложения используют порт 3000. Я изменил порт на 8001 в package.json следующим образом:
"scripts": { "start": "PORT=8001 react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" },
источник
Вы должны находиться в папке проекта, если вы находитесь в этих папках
src
илиpublic
должны выйти из них. Предположим, что название вашего проекта реакции - hello-react, тогдаcd hello-react
источник
вам следует изменить заголовок импорта из ' ./ src / components / header / header 'в
импортировать заголовок из ' .. / src / components / header / header'
источник
Вы можете попробовать выполнить «npm install» в папке приложения. Это также может решить проблему. У меня это сработало.
источник
Я столкнулся с той же проблемой и решил ее. Посмотрите, находится ли ваш
index.js
файл вsrc
папке, тогда какой бы файл вы ни импортировали, папка, содержащая его, также должна находиться внутри папки src.Это означает, что если ваша папка компонентов находится за пределами
src
папки, просто перетащите ее внутрьsrc
папки в редакторе, потому что файлы внеsrc
папки не импортируются.Затем вы сможете импортировать, используя
./components/header/header
(в этом случае)источник
Есть лучший способ справиться с импортом модулей в приложение React. Попробуйте сделать это:
//jsconfig.json { "compilerOptions": { "baseUrl": "./src" } }
Теперь вместо звонка
../../
вы можете легко сделать это:import navBar from 'components/header/navBar' import 'css/header.css'
Обратите внимание, что 'components /' отличается от '../components/'
Так аккуратнее.
Но если вы хотите импортировать файлы в тот же каталог, вы также можете сделать это:
import logo from './logo.svg'
источник
Проверьте операторы импорта. Они должны заканчиваться точкой с запятой. Если вы что-то пропустите, вы получите эту ошибку.
Также проверьте, добавлен ли в ваш компонент следующий оператор импорта.
импортировать {threadId} из worker_threads;
Если да, удалите эту строку. Меня устраивает.
источник
В моем случае я переименовал файл компонента, VS Code добавил для меня следующую строку кода:
import React, { Component } from "./node_modules/react";
Поэтому я исправил, удалив:
./node_modules/
import React, { Component } from "react";
Ура!
источник