Когда я пишу webpack.config.js вот так
module.exports = {
entry: './index.jsx',
output: {
filename: 'bundle.js'
},
module: {
loaders: [{
test: /\.jsx?$/,
exclude: /node_modules/,
loader: 'babel',
query: {
presets: ['es2015', 'react']
}
}]
}
};
И в index.jsx
импортирую react
модульApp
import React from 'react';
import { render } from 'react-dom';
import App from './containers/App';
let rootElement = document.getElementById('box')
render(
<App />,
rootElement
)
Я обнаружил, что если я назвал приложение модуля в App.jsx
, тогда веб-пакет скажет, что index.jsx
не могу найти модуль App
, но если я назвал приложение модуля с именем в App.js
, он найдет этот модуль и будет работать хорошо.
Итак, я в замешательстве. По моему webpack.config.js
, я написал test: /\.jsx?$/
для проверки файла, но почему имя *.jsx
не найдено?
источник
rule
module
{ module: { rules: [ { test: /\.jsx?$/, resolve: { extensions: [".js", ".jsx"] }, include: ... } ] }
Добавляя к приведенному выше ответу,
Свойство разрешения - это то место, где вы должны добавить все типы файлов, которые вы используете в своем приложении.
Предположим, вы хотите использовать файлы .jsx или .es6 ; вы можете добавить их сюда, и webpack разрешит их:
Если вы добавите расширения в свойство resolve , вы можете удалить их из оператора импорта:
В других сценариях, например, если вы хотите, чтобы был обнаружен сценарий кофе, вам следует также настроить свойство теста, например:
источник
В интересах читабельности и копирования и вставки кода. Вот ответ на webpack 4 от комментария мистера Роджерса в этой теме.
источник
Как упоминалось в комментариях к ответу от @max, для webpack 4 я обнаружил, что мне нужно поместить это в одно из правил, перечисленных в модуле, например:
источник
У меня возникла аналогичная проблема, и я смог решить эту проблему с помощью свойства resolve .
Как видите, я использовал .jsx там, что разрешило следующую ошибку
ОШИБКА в ./src/app.jsx Модуль не найден: Ошибка: не удается устранить
Для справки: https://webpack.js.org/configuration/resolve/#resolve-extensions
источник
Убедитесь, что bundle.js создается без ошибок (проверьте журнал выполнения задач).
Я получал «не могу найти модуль, если файл с именем jsx» из-за синтаксической ошибки в html в функции рендеринга компонента.
источник