Mientras escribo webpack.config.js así
module.exports = {
entry: './index.jsx',
output: {
filename: 'bundle.js'
},
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['es2015', 'react']
}
}]
}
};
Y en index.jsx
importo un react
móduloApp
import React from 'react';
import { render } from 'react-dom';
import App from './containers/App';
let rootElement = document.getElementById('box')
render(
<App />,
rootElement
)
Encuentro que si nombré la aplicación del módulo App.jsx
, entonces el paquete web dirá index.jsx
que no se puede encontrar el módulo App
, pero si nombré la aplicación del módulo con nombre App.js
, encontrará este módulo y funcionará bien.
Entonces, estoy confundido al respecto. En mi webpack.config.js
, he escrito test: /\.jsx?$/
para verificar el archivo, pero ¿por qué *.jsx
no se puede encontrar el nombre?
fuente
rule
que se enumeran enmodule
...{ module: { rules: [ { test: /\.jsx?$/, resolve: { extensions: [".js", ".jsx"] }, include: ... } ] }
Agregando a la respuesta anterior,
La propiedad de resolución es donde debe agregar todos los tipos de archivo que está utilizando en su aplicación.
Suponga que desea utilizar archivos .jsx o .es6 ; felizmente puede incluirlos aquí y el paquete web los resolverá:
Si agrega las extensiones en la propiedad de resolución , puede eliminarlas de la declaración de importación:
En otros escenarios, como si desea que se detecte el script de café, debe configurar su propiedad de prueba , así como:
fuente
En aras de la legibilidad y la codificación de copiar y pegar. Aquí está la respuesta webpack 4 del Sr. Rogers comentario en este hilo.
fuente
Como se menciona en los comentarios sobre la respuesta de @max, para el paquete web 4, descubrí que necesitaba poner esto en una de las reglas que se enumeran en el módulo, así:
fuente
Estaba enfrentando un problema similar y pude resolverlo usando la propiedad resolve .
Como puede ver, he usado .jsx allí que resolvió el siguiente error
ERROR en ./src/app.jsx Módulo no encontrado: Error: No se puede resolver
Para referencia: https://webpack.js.org/configuration/resolve/#resolve-extensions
fuente
Verifique que bundle.js se esté generando sin errores (consulte el Registro del Ejecutor de tareas).
Obtenía 'no se puede encontrar el módulo si el archivo se llama jsx' debido al error de sintaxis en html en la función de representación del componente.
fuente