Webpack 4: ошибка в модуле entry не найдена: ошибка: не удается разрешить './src'

Я пытался запустить webpack-4 первый раз

webpack ./src/js/app.js ./dist/app.bundle.js

он показывает предупреждение / ошибку:

WARNING in configuration
The 'mode' option has not been set, webpack will fallback to 'production' for this value. Set 'mode' option to 'development' or 'production' to enable defaults for each environment.
You can also set it to 'none' to disable any default behavior. Learn more: https://webpack.js.org/concepts/mode/

ERROR in multi ./src/js/app.js ./dist/app.bundle.js
Module not found: Error: Can't resolve './dist/app.bundle.js' in 'D:\wamp64\www\webpack-4'
 @ multi ./src/js/app.js ./dist/app.bundle.js

Затем я попытался сменить режим

webpack --mode development

это показывает :

ERROR in Entry module not found: Error: Can't resolve './src'

Отметьте этот проект Демо Webpack-4. Надеюсь, это поможет вам!

Carloluis 11.05.2018 03:10
55
1
66 637
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

Ответ принят как подходящий

Решено

Потратил много времени, чтобы найти решение.

Решение: добавьте файл index.js в папку src.

Вот и все! .. решено :)


Во время исследования я нашел некоторые факты о webpack 4:

webpack 4 по умолчанию не требует файла конфигурации!

webpack 4 есть нет необходимости определять точку входа: по умолчанию он принимает ./src/index.js!

что, если ваш файл js находится в каком-то месте, как бы вы определили путь или точку входа?

Lokesh Pandey 03.08.2018 09:24

@MertMetin Если вы не хотите менять расположение файла js, вы всегда можете использовать этот ответ. stackoverflow.com/questions/45255190/…

Lokesh Pandey 03.08.2018 10:27
webpack ./src/js/app.js --output ./dist/app.bundle.js --mode development

Это сработало для меня. У меня была такая же проблема, это из-за новой версии webpack

Встречал эту проблему при развертывании на now.sh

Решение: использовать поведение по умолчанию

Переместить точку входа в src/index.js.

Это кредитное плечо Значение по умолчанию для webpack@4 для entry:

By default its value is ./src/index.js, but you can specify a different (or multiple entry points) by configuring the entry property in the webpack configuration.

Решение: будьте конкретны

Как отметил @Lokeh, если вы не хотите изменять расположение файла JS, вы всегда можете использовать path.resolve() в своем webpack.config.js:

entry: path.resolve(__dirname, 'src') + '/path/to/your/file.js',

Ваше последнее решение помогло мне, даже если веб-пакет читал пользовательские файлы .ejs. Спасибо

klewis 18.10.2019 15:22

Я только что создал новое приложение rails 6.1.3, и нигде нет index.js

Mices 01.05.2021 04:16

Начиная с webpack ^ 4.29.6 вам не нужен какой-либо файл конфигурации, поэтому вместо указания пути в package.json нам нужно просто написать «build»: «webpack» и сохранить index.js в качестве точки входа в папке src. Однако, если вы хотите изменить точку входа, вы можете сделать это в файле конфигурации webpack.

Явное добавление контекста в webpack.config.js решило проблему. Адаптируйте следующий фрагмент кода в своем проекте:

context: __dirname + '/src',
entry: './index.js',

Для приложения Rails 6 у меня сработали следующие шаги:

1) bundle exec rails webpacker:install система переустановит webpacker, но перезапишет несколько файлов:

  modified:   config/webpack/environment.js
  modified:   config/webpacker.yml
  modified:   package.json
  modified:   yarn.lock

2) Вернуть конфиги в исходное состояние:

git checkout config/webpack/environment.js

git checkout config/webpacker.yml

package.json и yarn.lock можете оставить как есть

Как и другие, потратил много времени, чтобы обойти эту досадную проблему. Наконец изменил webpack.config.js следующим образом: -

output: {
  path: path.resolve(__dirname, './src'), //src instead of dist
  publicPath: '/src/', //src instead of dist
  filename: 'main.js' //main.js instead of build.js
}

... поскольку Эдуард Лопес и Сабир Хуссейн упомянули, что вам не нужно упоминать точку входа, удалили и ее, и приложение было скомпилировано после долгого разочарования.

Итак, моя проблема, на которую я готов поспорить, - это проблема многих людей, заключающаяся в том, что я устанавливаю путь входа на основе всего моего корня приложения. В моем случае это был /client/main.ts. Но поскольку мой файл webpack.config.js на самом деле находился внутри / client, мне пришлось перейти в эту папку, чтобы запустить webpack. Поэтому моя запись теперь искала /client/client/main.ts.

Поэтому, если вы получаете эту ошибку, вам нужно действительно посмотреть на свой путь входа и убедиться, что он правильный, в зависимости от того, где вы запускаете webpack и где находится ваш файл webpack.config.js. Ваш входной путь должен быть относительно того, где вы запускаете webpack. Не относительно корня вашего приложения.

У меня была аналогичная ошибка, и я смог решить ее с помощью команды webpack src/index.js -o dist/bundle.js, -o помог. Проблема заключалась не в расположении index.js, в нем отсутствовал оператор для определения местоположения выходного пути.

См. https://webpack.js.org/api/cli/

Версия webpack была 4.44.1.

У меня была такая проблема, когда переключение между гемами React / Rails. Запуск rails webpacker:install вернул меня к настройкам по умолчанию для веб-упаковщика Rails, но также перезаписал все мои файлы конфигурации. При ближайшем рассмотрении виновником оказался мой файл webpack/development.js, который в предыдущей версии гема был изменен с помощью этого веб-пакера Rails по умолчанию:

process.env.NODE_ENV = process.env.NODE_ENV || 'development'

const environment = require('./environment')

module.exports = environment.toWebpackConfig()

Как только я восстановил файл до этого содержимого, эта ошибка исчезла. В частности, мне не хватало строки module.exports = environment.toWebpackConfig(), которая, по-видимому, очень важна для тех, кто хочет избежать веб-упаковщика Rails, думая, что ему нужен файл src / index.js (это не так)

Другие вопросы по теме