Je ne peux pas croire que je pose une question évidente, mais j'obtiens toujours l'erreur dans le journal de la console.
La console dit qu'elle ne trouve pas le module dans le répertoire, mais j'ai vérifié au moins 10 fois les fautes de frappe. Quoi qu'il en soit, voici le code du composant.
Je veux rendre l'en- tête à la racine
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;
C'est le Header
composant
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'));
J'ai vérifié au moins 10 fois que le module est à cet emplacement ./src/components/header/header
, et c'est le cas (le dossier "header" contient "header.js").
Pourtant, React lève toujours cette erreur:
Échec de la compilation
./src/App.js
Module not found: Can't resolve './src/components/header/header' in '/home/wiseman/Desktop/React_Components/github-portfolio/src'
npm test dit la même chose.
javascript
reactjs
Vladimir Jovanović
la source
la source
export default Header;
sur votre 'fichier d'en-tête'import Header from './components/header/header'
sans src. Le chemin du fichier est relatif au chemin du fichier d'importation. Ensuite , vous devez exporter àHeader
partirheader.js
et fixer laApp.render
méthode.components
dossier en dehors dusrc
dossier, cela me dit que je dois modifier lesnode_modules
fichiers, ce qui n'est pas mon attention.import smth from './components/header/header'
identique pour cette ligne,import navBar from './src/components/header/navBar'
cela devrait être relatif au chemin actuelimport navBar from './navBar'
Réponses:
La façon dont nous utilisons habituellement
import
est basée sur le chemin relatif..
et..
sont similaires à la façon dont nous utilisons pour naviguer dansterminal
commecd ..
pour sortir du répertoire etmv ~/file .
pour déplacer unfile
vers le répertoire courant.Dans votre cas,
App.js
est dans lesrc/
répertoire pendant queheader.js
est danssrc/components
. Pourimport
vous feriezimport Header from './components/header'
. Cela se traduit à peu près dans mon répertoire actuel, recherchez le dossier des composants qui contient un fichier d'en-tête.Maintenant, si de
header.js
, vous avez besoin deimport
quelque chose decard
, vous le feriez.import Card from '../containers/card'
. Cela se traduit par, sortez de mon répertoire actuel, recherchez des conteneurs de nom de dossier contenant un fichier de carte.En ce qui concerne
import React, { Component } from 'react'
, cela ne commence pas par un./
ou../
ou/
donc le nœud commencera à rechercher le modulenode_modules
dans un ordre spécifique jusqu'à ce qu'ilreact
soit trouvé. Pour une compréhension plus détaillée, il peut être lu ici .la source
Si vous créez une application avec react-create-app, n'oubliez pas de définir la variable d'environnement:
Ou ajoutez au
.env
fichier dans votre dossier racine;la source
App.css
àsrc/
et faitimport App.css
. Mais cela m'a donné l'erreur de la question. Cette réponse a résolu le problème.L'ajout en
NODE_PATH
tant que variable d'environnement dans.env
est obsolète et est remplacé par l'ajout"baseUrl": "./src"
, àcompilerOptions
injsconfig.json
outsconfig.json
.Référence
la source
Supprimé le fichier package-lock.json, puis exécuté
Lire la suite
la source
dans mon cas, le message d'erreur était
Module not found: Error: Can't resolve '/components/body
Alors que tout était dans le bon répertoire.
J'ai trouvé que renommer
body.jsx
pourbody.js
résoudre le problème!J'ai donc ajouté ce code
webpack.config.js
pour résoudrejsx
commejs
module.exports = { //... resolve: { extensions: ['.js', '.jsx'] } };
Et puis erreur de construction disparue!
la source
Je pense que c'est la double utilisation de l'en-tête. J'ai juste essayé quelque chose de similaire moi-même et j'ai également causé des problèmes. J'ai capitalisé mon fichier de composant pour correspondre aux autres et cela a fonctionné.
import Header from './src/components/header/header';
Devrait être
import Header from './src/components/header/Header';
la source
./components/header/header
je faisais./components/header
... Je suis trop vieux pour ce genre d'erreurs lololJ'ai eu un problème similaire.
Cause:
import HomeComponent from "components/HomeComponent";
Solution:
import HomeComponent from "./components/HomeComponent";
REMARQUE:
./
était avant les composants. Vous pouvez lire le post de @Zac Kwan ci-dessus sur la façon d'utiliserimport
la source
J'ai rencontré le même problème lorsque j'ai créé une nouvelle application de réaction, j'ai essayé toutes les options de https://github.com/facebook/create-react-app/issues/2534 mais cela n'a pas aidé. J'ai dû changer le port de la nouvelle application, puis cela a fonctionné. Par défaut, les applications utilisent le port 3000.J'ai changé le port en 8001 dans package.json comme suit:
"scripts": { "start": "PORT=8001 react-scripts start", "build": "react-scripts build", "test": "react-scripts test", "eject": "react-scripts eject" },
la source
Vous devez être dans le dossier du projet, si vous y êtes
src
ou quepublic
vous devez sortir de ces dossiers. Supposons que le nom de votre projet react soit 'hello-react' alorscd hello-react
la source
vous devez changer l'en-tête d'importation de ' . / src / components / header / header 'à
importer l'en-tête depuis ' .. / src / components / header / header'
la source
Vous pouvez essayer d'exécuter «npm install» dans le dossier de l'application. Cela pourrait également résoudre le problème. Cela a fonctionné pour moi.
la source
J'étais confronté au même problème et je l'ai résolu. Vérifiez si votre
index.js
fichier est dans unsrc
dossier, puis quel que soit le fichier que vous importez, le dossier contenant celui-ci doit également se trouver dans le dossier src.Cela signifie que si votre dossier de composants se trouve en dehors du
src
dossier, faites-le simplement glisser dans lesrc
dossier de votre éditeur car les fichiers en dehors dusrc
dossier ne sont pas importés.Ensuite, vous pourrez importer en utilisant
./components/header/header
(dans ce cas)la source
Il existe une meilleure façon de gérer l'importation de modules dans votre application React. Pensez à faire ceci:
//jsconfig.json { "compilerOptions": { "baseUrl": "./src" } }
Maintenant, plutôt que d'appeler,
../../
vous pouvez facilement le faire à la place:import navBar from 'components/header/navBar' import 'css/header.css'
Notez que «composants /» est différent de «../components/»
C'est plus net comme ça.
Mais si vous souhaitez importer des fichiers dans le même répertoire, vous pouvez également le faire:
import logo from './logo.svg'
la source
Vérifiez les instructions d'importation, qui doivent se terminer par un point-virgule. Si vous en manquez, vous obtiendrez cette erreur.
Vérifiez également si l'instruction d'importation suivante a été ajoutée dans votre composant.
import {threadId} de 'worker_threads';
Si tel est le cas, supprimez cette ligne. Ça marche pour moi.
la source
Dans mon cas, je renomme un fichier de composant, un code VS ajoute la ligne de code ci-dessous pour moi:
import React, { Component } from "./node_modules/react";
J'ai donc corrigé en supprimant le:
./node_modules/
import React, { Component } from "react";
À votre santé!
la source