Saya tidak percaya bahwa saya mengajukan pertanyaan yang jelas, tetapi saya masih mendapatkan kesalahan di log konsol.
Konsol mengatakan bahwa ia tidak dapat menemukan modul di direktori, tetapi saya telah memeriksa setidaknya 10 kali kesalahan ketik. Bagaimanapun, inilah kode komponennya.
Saya ingin membuat Header di root
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;
Ini adalah Header
komponennya
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'));
Saya telah memeriksa setidaknya 10 kali bahwa modul ada di lokasi ini ./src/components/header/header
, dan itu (folder "header" berisi "header.js").
Namun, React masih memberikan kesalahan ini:
Gagal mengkompilasi
./src/App.js
Module not found: Can't resolve './src/components/header/header' in '/home/wiseman/Desktop/React_Components/github-portfolio/src'
npm test mengatakan hal yang sama.
javascript
reactjs
Vladimir Jovanović
sumber
sumber
export default Header;
pada 'file header' Andaimport Header from './components/header/header'
w / o src. Jalur file relatif terhadap jalur file impor. Kemudian Anda perlu mengeksporHeader
dariheader.js
dan memperbaikiApp.render
metode.components
folder di luarsrc
folder, maka sayanode_modules
diberi tahu bahwa saya perlu mengubah file, yang bukan merupakan perhatian saya.import smth from './components/header/header'
sama untuk baris ini,import navBar from './src/components/header/navBar'
itu harus relatif terhadap jalur saat iniimport navBar from './navBar'
Jawaban:
Cara yang biasa kami gunakan
import
didasarkan pada jalur relatif..
dan..
mirip dengan cara yang kita gunakan untuk menavigasiterminal
seperticd ..
untuk keluar dari direktori danmv ~/file .
untuk memindahkanfile
ke direktori saat ini.Dalam kasus Anda,
App.js
berada dalamsrc/
direktori saatheader.js
berada dalamsrc/components
. Untukimport
Anda akan melakukannyaimport Header from './components/header'
. Ini kira-kira diterjemahkan ke dalam direktori saya saat ini, temukan folder komponen yang berisi file header.Sekarang, jika dari
header.js
, Anda perluimport
sesuatu daricard
, Anda akan melakukan ini.import Card from '../containers/card'
. Ini diterjemahkan ke, keluar dari direktori saya saat ini, cari wadah nama folder yang memiliki file kartu.Adapun
import React, { Component } from 'react'
, ini tidak dimulai dengan./
atau../
atau/
karena simpul akan mulai mencari modul dalamnode_modules
dalam urutan tertentu sampaireact
ditemukan. Untuk pengertian yang lebih detail bisa dibaca disini .sumber
Jika Anda membuat aplikasi dengan react-create-app, jangan lupa setel variabel lingkungan:
Atau tambahkan ke
.env
file ke folder root Anda;sumber
App.css
tosrc/
dan doimport App.css
. Tapi itu memberi saya pertanyaan yang salah. Jawaban ini menyelesaikan masalah.Menambahkan
NODE_PATH
sebagai variabel lingkungan di.env
tidak digunakan lagi dan diganti dengan menambahkan"baseUrl": "./src"
, kecompilerOptions
dalamjsconfig.json
atautsconfig.json
.Referensi
sumber
Menghapus file package-lock.json & kemudian menjalankan
Baca lebih lanjut
sumber
dalam kasus saya, Pesan kesalahannya adalah
Module not found: Error: Can't resolve '/components/body
Sementara semuanya ada di direktori yang benar.
Saya menemukan bahwa mengganti nama
body.jsx
menjadibody.js
menyelesaikan masalah!Jadi saya menambahkan kode ini
webpack.config.js
untuk menyelesaikanjsx
sebagaijs
module.exports = { //... resolve: { extensions: ['.js', '.jsx'] } };
Dan kemudian kesalahan build hilang!
sumber
Saya pikir ini adalah penggunaan ganda dari header. Saya baru saja mencoba sesuatu yang serupa dan juga menyebabkan masalah. Saya menggunakan huruf besar file komponen saya untuk mencocokkan yang lain dan berhasil.
import Header from './src/components/header/header';
Seharusnya
import Header from './src/components/header/Header';
sumber
./components/header/header
saya lakukan./components/header
... Saya terlalu tua untuk kesalahan semacam itu lololSaya memiliki masalah serupa.
Sebab:
import HomeComponent from "components/HomeComponent";
Larutan:
import HomeComponent from "./components/HomeComponent";
CATATAN:
./
sebelum komponen. Anda dapat membaca posting @Zac Kwan di atas tentang cara menggunakanimport
sumber
Saya menghadapi masalah yang sama ketika saya membuat aplikasi react baru, saya mencoba semua opsi di https://github.com/facebook/create-react-app/issues/2534 tetapi tidak membantu. Saya harus mengubah port untuk aplikasi baru dan kemudian berhasil. Secara default, aplikasi menggunakan port 3000. Saya mengubah port menjadi 8001 di package.json sebagai berikut:
"scripts": { "start": "PORT=8001 react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" },
sumber
Anda harus berada di folder proyek, jika Anda masuk
src
ataupublic
harus keluar dari folder itu. Misalkan nama react-project Anda adalah 'hello-react'cd hello-react
sumber
Anda harus mengubah import Header dari ' ./ src / komponen / header / header 'ke
impor Header dari ' .. / src / components / header / header'
sumber
Anda dapat mencoba menjalankan 'npm install' di folder aplikasi. Ini mungkin juga menyelesaikan masalah. Itu berhasil untuk saya.
sumber
Saya menghadapi masalah yang sama dan saya menyelesaikannya. Lihat apakah
index.js
file Anda ada di dalamsrc
folder, lalu file apa pun yang Anda impor, folder yang berisi itu juga harus berada di dalam folder src.Itu berarti jika folder komponen Anda berada di luar
src
folder, seret saja ke dalamsrc
folder di editor Anda karena file di luarsrc
folder tidak diimpor.Kemudian Anda akan dapat mengimpor menggunakan
./components/header/header
(dalam kasus ini)sumber
Ada cara yang lebih baik untuk menangani impor modul di Aplikasi React Anda. Pertimbangkan untuk melakukan ini:
//jsconfig.json { "compilerOptions": { "baseUrl": "./src" } }
Sekarang daripada menelepon,
../../
Anda dapat dengan mudah melakukan ini:import navBar from 'components/header/navBar' import 'css/header.css'
Perhatikan bahwa 'komponen /' berbeda dari '../components/'
Lebih rapi seperti ini.
Tetapi jika Anda ingin mengimpor file dalam direktori yang sama, Anda juga dapat melakukan ini:
import logo from './logo.svg'
sumber
Periksa pernyataan import. Ini harus diakhiri dengan titik koma. Jika Anda melewatkan satu pun, Anda akan mendapatkan kesalahan ini.
Juga periksa apakah pernyataan import berikut ditambahkan ke dalam komponen Anda.
impor {threadId} dari 'worker_threads';
Jika demikian, hapus garis itu. Ini bekerja untuk saya.
sumber
Dalam kasus saya, saya mengganti nama file komponen, VS Code menambahkan baris kode di bawah ini untuk saya:
import React, { Component } from "./node_modules/react";
Jadi saya perbaiki dengan menghapus:
./node_modules/
import React, { Component } from "react";
Bersulang!
sumber