Ошибка: не удается найти модуль 'webpack'


152

Я только начинаю работать с веб-пакетом, и у меня возникают трудности при создании образца с несколькими точками входа . Файл webpack.config.js в примере содержит строку

 var CommonsChunkPlugin = require("../../lib/optimize/CommonsChunkPlugin");

который терпит неудачу для меня с ошибкой

Error: Cannot find module '../../lib/optimize/CommonsChunkPlugin'

Осматривая, я нашел другие примеры использования CommonsChunkPlugin с выражением

var commonsPlugin = new webpack.optimize.CommonsChunkPlugin("common.js");

который терпит неудачу с ошибкой

ReferenceError: webpack is not defined

Еще некоторые поиски нашли ряд примеров, в том числе

var webpack = require('webpack');

и моя сборка теперь терпит неудачу с

Error: Cannot find module 'webpack'

Я в растерянности относительно того, как продолжить.


2
Ты npm install webpackраньше бегал ?
Йоханнес Эвальд

Да. Webpack установлен и работает над другими примерами. Именно в попытке добавить плагин для примера множественных точек входа я столкнулся с проблемой.
Ред.

Error: Cannot find module 'webpack'это ошибка узла Так что это не имеет ничего общего с самим веб-пакетом (afaict). Кажется, что узел смотрит в неправильные папки ...
Йоханнес Эвальд

6
Я вижу, npm install -g webpackу меня тоже не получилось. Но это происходит с npm install webpack- убедитесь, что вы находитесь в корневой папке приложения при вызове, а npm install webpackзатем проверьте, существует ли модуль в node_modulesпапке. Также кажется, что webpackнужен fsevents(необязательный) модуль в системах Linux - я использую Windows, поэтому я не уверен - попробуйте fseventsтакже установить
AndreiDMS

3
Как я уже говорил выше, глобальная установка у меня тоже не работает, поэтому попробуйте установить webpackв локальную папку приложения, используя npm install webpack, без-g
AndreiDMS,

Ответы:


273

Ссылка глобально установленного пакета на ваш проект

npm link webpack

7
Это самый простой ответ.
Томас В.

1
На какой файл влияет эта настройка? Я не видел никаких изменений в файлах JSON. Можете ли вы уточнить?
Рой Намир

в любом случае, похоже, нет связи. После этого произошел сбой webpack-dev-server.
Планктон

После месяца, когда я не мог заставить его работать, я был очень близок к тому, чтобы сдаться и продолжать работать с Angularjs. Это наконец-то сработало! Спасибо.
NestorArturo

я устанавливаю webpack, но я запускаю webpack без каких-либо параметров show, этот тип сообщения: какое из них вы хотели бы установить (webpack-cli / web-command)
Ng Sharma

60

Работая на Windows, я установил веб-пакет локально, и это решило мою проблему

Итак, в командной строке перейдите в каталог, в котором вы хотите запустить веб-пакет, установите веб-пакет локально (без -g) и наслаждайтесь ...


10
но вы не упомянули, как установить его «локально»
jpganz18

локально это npm install webpack, без использования -g, как уже упоминалось. Это сработало в моем случае.
Хонза П.

24

Кажется, это общая проблема Windows. Это исправило это для меня:

Nodejs не может найти установленный модуль в Windows?

«Добавьте переменную среды с именем NODE_PATHи задайте для нее %USERPROFILE%\Application Data\npm\node_modules(Windows XP), %AppData%\npm\node_modules(Windows 7) или там, где npm завершает установку модулей в вашем варианте Windows. Чтобы сделать это раз и навсегда, добавьте это как системную переменную в вкладка «Дополнительно» диалогового окна «Свойства системы» (запустите control.exe sysdm.cpl, System, 3). "

Обратите внимание, что вы не можете использовать другую переменную окружения в пределах значения NODE_PATH. То есть, не просто скопируйте и вставьте эту строку выше, но установите для нее фактический разрешенный путь, напримерC:\Users\MYNAME\AppData\Roaming\npm\node_modules


1
не работает для меня в Windows 10. В значении NODE_PATH` нет node_modulesпапки, но это не помоглоC:\Users\MYNAME\AppData\Roaming\npm`. I tried to set C:\Program Files (x86)\nodejs\node_modules
VB_

3
Прекрасно работает для меня на Windows 10: setx NODE_PATH %AppData%\npm\node_modules. Возможно, вам придется перезапустить ваш, cmdпрежде чем NODE_PATHпеременная станет доступной или также запустить set NODE_PATH=%AppData%\npm\node_modules.
Nux

23

Я решил ту же проблему, переустановив, выполните эти команды

rm -Rf node_modules
rm -f package-lock.json
npm install

rmЭто всегда опасная команда, особенно с -f, пожалуйста, обратите внимание, что перед ее выполнением !!!!!


2
В этом виноват package-lock.json
Сержио С. Фильо,

17

Запустите следующие команды в Терминале:

npm install --save-dev webpack

npm install --save-dev webpack-dev-server


9

У меня была эта проблема в OS X, и она, кажется, была вызвана несоответствием версий между моим глобально установленным webpackи локально установленным webpack-dev-server. Обновление до последней версии избавило от проблемы.


это сработало и для меня, так что я думаю, что стоит рассмотреть различные сценарии, если у вас есть такая проблема.
JL Peyret

2

Если вы установили пакет узла и по-прежнему получаете сообщение о том, что пакет не определен, у вас может быть проблема с подключением PATH к двоичному файлу. Просто, чтобы уточнить двоичный и исполняемый файлы, по сути, нужно сделать то же самое, то есть выполнить пакет или приложение. ei webpack ... выполняет пакет узла webpack.

И в Windows, и в Linux есть глобальная двоичная папка. В Windows я считаю, что это что-то вроде C: // Windows / System32, а в Linux это usr / bin. Когда вы открываете терминал / командную строку, ее профиль связывает переменную PATH с глобальной папкой bin, чтобы вы могли выполнять из нее пакеты / приложения.

Мое лучшее предположение состоит в том, что глобальная установка веб-пакета, возможно, не поместила исполняемый файл в глобальную двоичную папку. Без исполняемого файла вы получите сообщение об ошибке. Это может быть еще одна проблема, но можно с уверенностью сказать, что если вы здесь читаете это, глобальный запуск webpack не работает для вас.

Мое решение этой проблемы - покончить с глобальным запуском webpack и связать PATH с двоичной папкой node_module, которая является /node_modules/.bin.

ОКНА: добавьте node_modules / .bin в вашу PATH. Вот учебник о том, как изменить переменную PATH в Windows.

LINUX: зайдите в корневой каталог вашего проекта и выполните это ...

export PATH:$PWD/node_modules/.bin:$PATH 

В Linux вам придется выполнять эту команду каждый раз, когда вы открываете свой терминал. По этой ссылке вы узнаете, как внести изменения в переменную PATH на постоянное место.


1

Я заметил, что в Windows эта проблема появляется, если у вас нет прав администратора (то есть вы не являетесь локальным администратором) на компьютере.

Как предположил кто-то другой, решение, по-видимому, заключается в локальной установке без использования -gподсказки.


1

Откройте командную строку npm и папку решения - cd, а затем просто запустите веб-пакет npm link в NPM cmd prommt и выполните сборку.


1

Вы можете попробовать это.

npm install --only=dev

Меня устраивает.


0

Ничто из предложенного выше не помогло мне (включая переменную NODE_PATH). Я создал символическую ссылку «node_modules» из моей локальной папки на глобальные AppData (например, ниже), и она работала как шарм.

C:\Users\mmoinuddin\AppData\Roaming\npm>mklink /D node_modules c:\essportreact\day1\node_modules
symbolic link created for node_modules <<===>> c:\essportreact\day1\node_modules
C:\essportreact\day1>webpack
Hash: 2a82a67f90f9aa05ab4a
Version: webpack 1.15.0

0

Просто обнаружил, что с помощью терминала Atom IDE не устанавливались зависимости локально (возможно, ошибка или только я). Внешняя установка git bash и запуск команд npm снова помогли мне


0

для меня это неправильная обратная связь.

была ошибка конфигурации в webpack.config.js,

удали файл и начни сначала решил мою проблему


0

У меня было множество проблем с получением очень простого приложения .NET Core 2.0 для сборки в VS 2017. Это ошибка от AppVeyor, однако это было по сути то же самое локально (некоторые пути для безопасности опущены):

Выполнение первого запуска сборки Webpack ...

module.js: 327 throw err;

EXEC: ошибка: не удается найти модуль '........ / node_modules / webpack / bin / webpack.js'

в Function.Module._resolveFilename (module.js: 325: 15)

в Function.Module._load (module.js: 276: 25)

в Function.Module.runMain (module.js: 441: 10)

при запуске (node.js: 140: 18)

в node.js: 1043: 3

csproj (25,5): ошибка MSB3073: команда "node node_modules / webpack / bin / webpack.js --config webpack.config.vendor.js" завершена с кодом 1.

Сборка не удалась.

Я наткнулся на этот вопрос и ответ , и я заметил, что мой локальный экземпляр также имел такой же предупреждающий знак над {Project Root} -> Dependencies -> npmпапкой. Щелчок правой кнопкой мыши и нажатие кнопки «Восстановить пакеты» загрузили все правильно, и я смог успешно собрать.


0

У меня работает npm link webpack.

Моя конфигурация webpack: "webpack": "^ 4.41.2", "webpack-dev-server": "^ 3.9.0", "webpack-cli": "^ 3.3.10"


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.