Au moment où j'écris webpack.config.js comme ça
module.exports = {
entry: './index.jsx',
output: {
filename: 'bundle.js'
},
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['es2015', 'react']
}
}]
}
};
Et dans index.jsx
j'importe un react
moduleApp
import React from 'react';
import { render } from 'react-dom';
import App from './containers/App';
let rootElement = document.getElementById('box')
render(
<App />,
rootElement
)
Je trouve que si j'ai nommé module app dans App.jsx
, alors webpack dira in Ca index.jsx
n't find module App
, mais si j'ai nommé named module app in App.js
, il trouvera ce module et fonctionnera bien.
Donc, je suis confus à ce sujet. Dans mon webpack.config.js
, j'ai écrit test: /\.jsx?$/
pour vérifier le fichier, mais pourquoi named *.jsx
ne peut pas être trouvé?
la source
rule
s qui étaient répertoriés sousmodule
...{ module: { rules: [ { test: /\.jsx?$/, resolve: { extensions: [".js", ".jsx"] }, include: ... } ] }
Ajoutant à la réponse ci-dessus,
La propriété de résolution est l'endroit où vous devez ajouter tous les types de fichiers que vous utilisez dans votre application.
Supposons que vous souhaitiez utiliser des fichiers .jsx ou .es6 ; vous pouvez les inclure ici et webpack les résoudra:
Si vous ajoutez les extensions dans la propriété de résolution , vous pouvez les supprimer de l'instruction d'importation:
D'autres scénarios comme si vous voulez que le script de café soit détecté, vous devez également configurer votre propriété de test comme:
la source
Dans un souci de lisibilité et de codage copier-coller. Voici la réponse du webpack 4 du commentaire de mr rogers dans ce fil.
la source
Comme mentionné dans les commentaires sur la réponse de @max, pour le webpack 4, j'ai trouvé que je devais mettre cela dans l'une des règles répertoriées sous module, comme ceci:
la source
J'étais confronté à un problème similaire et j'ai pu résoudre à l'aide de la propriété de résolution .
Comme vous pouvez le voir, j'ai utilisé .jsx là-dedans qui a résolu l'erreur suivante
ERREUR dans le module ./src/app.jsx introuvable: Erreur: impossible de résoudre
Pour référence: https://webpack.js.org/configuration/resolve/#resolve-extensions
la source
Vérifiez que bundle.js est généré sans erreur (consultez le journal de l'exécution des tâches).
J'obtenais `` Impossible de trouver le module si le fichier nommé jsx '' en raison de l'erreur de syntaxe en html dans la fonction de rendu du composant.
la source