webpack не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма чи пакетний файл


125

Я навчаюсь React.js, і я використовую Windows 8 OS.i, щоб перейти до моєї кореневої папки

1.Created the package.json file by npm init
2. install webpack by npm install -S webpack.now webpack has been downloaded to my modules folder
3. install webpack globally by typing npm install webpack -g
4. i am also having a webpack.config.js in my root folder which contains the source and ouput directory
5. when i type the webpack command i am getting the below error.

webpack не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма чи пакетний файл


У мене була ця проблема, але після перезавантаження IDE (PHPStorm в моєму випадку) проблема була вирішена
Артур Цидкілов

Відповіді:


81

У мене це питання теж було давно. (веб-пакет встановлений у всьому світі тощо, але все ще не розпізнається) Виявилося, що я не вказав змінну навколишнього середовища для npm (де знаходиться файл webpack.cmd). Тому я додаю до моєї змінної Path

%USERPROFILE%\AppData\Roaming\npm\

Якщо ви використовуєте Powershell, ви можете ввести наступну команду, щоб ефективно додати ваш шлях:

[Environment]::SetEnvironmentVariable("Path", "$env:Path;%USERPROFILE%\AppData\Roaming\npm\", "User")

ВАЖЛИВО: Не забудьте закрити та знову відкрити вікно своєї панелі повноважень, щоб застосувати це.

Сподіваюся, це допомагає.


6
добре, Iam застряг там же ... Чи можете ви, будь ласка, детально відповісти на ур
Зловмисник

2
Я дотримувався всіх кроків, але це не спрацювало, і, нарешті, я зрозумів, що не відкривав CMD як адміністратор.
Хосейн Джадіді

1
Краще встановити% APPDATA% \ npm
Микола Петюх

156

Краще рішення цієї проблеми - встановити Webpackглобально.

Це завжди працює, і це працювало на мене. Спробуйте нижче команду.

npm install -g webpack

36
Я думаю, що слід зауважити, що використання -g встановлює webpack у всьому світі, що може не захотіти, якщо у вас є кілька проектів, які можуть вимагати різних версій webpack.
Uber Schnoz

92

Як альтернатива, якщо у вас встановлений локальний веб-пакет, ви можете чітко вказати, де слід шукати командний рядок, як-от так:

node_modules\.bin\webpack

(Це передбачає, що ви знаходитесь в каталозі зі своїм package.jsonі що ви вже працювали npm install webpack.)


4
Погодьтеся з Максом, тому що рекомендується встановити веб-пакет локально (у програмах devDependitions) - Моя проблема була дещо іншою, хоча, додаючи webpack як етап попереднього збирання у VS 2017, я подумав, що VS досить розумний, щоб знайти webpack cmd локально без повного шляху
JimiSweden

@JimiSweden Ви спробували додати node_modules\.binдо інструментів-> налаштувати зовнішні інструменти
Макс Favilli

4
Ви можете спробувати використовувати npx webpackтакож які перевірки ./node_modules/.binзамість того, щоб обходитися зі шляхами.
Манфред

46

npm install -g webpack-dev-server вирішить ваше питання


2
Він може вирішити повідомлення про помилку, розміщене в ОП, але це не є гарним рішенням проблеми, оскільки додає більше залежностей, ніж просто вирішення відсутнього веб-пакета. Дивіться будь-які інші відповіді з високими голосами для кращих варіантів.
angularsen

2
Як вже вказували різні учасники (див. Інші відповіді / коментарі), установка в усьому світі вважається поганою практикою, оскільки вона блокує вас до однієї версії. Дивіться також webpack.js.org/guides/installation
Манфред

17

Спробуйте видалити node_modules з локального каталогу та повторно запустіть npm install .


1
Дякую, це насправді зробило це для мене, спробував інші відповіді і вже понад годину був тут злий на світ
Клінт,

12

Додайте команду webpack як сценарій npm у свій package.json.

{
    "name": "react-app",
    "version": "1.0.0",
    "scripts": {
      "compile": "webpack --config webpack.config.js"
    }
}

Потім бігайте

npm запустити компілювати

Коли веб-пакет встановлений, він створює двійковий файл у папці ./node_modules/.bin. Сценарії npm також шукають виконуваний файл, створений у цій папці


не працює - npm install -g webpack-dev-server правильна команда
TarmoPikaro

11

Webpack CLI тепер знаходиться в окремому пакеті і його слід встановити глобально, щоб використовувати команду 'webpack':

npm install -g webpack-cli

EDIT: Багато що змінилося. Люди з веб-упаковки не рекомендують встановлювати CLI в усьому світі (або окремо з цього приводу). Цю проблему слід вирішити зараз, але правильною командою встановлення є:

npm install --save-dev webpack

Ця відповідь спочатку була задумана як "обхід" проблеми ОП.


1
"я повинен бути встановлений глобально", невірно, наскільки я це розумію. Навіть люди з webpack радять проти цього. Дивіться webpack.js.org/guides/installation
Манфред

4

ви повинні встановити webpack і webpack-cli в одному обсязі.

npm i -g webpack webpack-cli

або,

npm i webpack webpack-cli

якщо ви встановите його локально, вам потрібно зателефонувати спеціально

node_modules/.bin/webpack -v

Або, якщо встановлено локально, ви можете використовувати npx webpack(тестовано на npm версії 6.5.0, webpack 4.28.4 та webpack-cli 3.2.1)
Manfred

ось квиток
Чекалек

npm i -g webpack webpack-cli
VnDevil

4

Ми також відчули цю проблему, і мені подобаються всі відповіді, які пропонують використовувати сценарій, визначений в package.json .

Для наших рішень ми часто використовуємо таку послідовність:

  1. npm install --save-dev webpack-cli(якщо ви використовуєте webpack v4 або новішу версію, іншим чином користуйтеся npm install --save-dev webpack, перегляньте статтю встановлення веб-пакета , отримано 19 січня 2019 року)
  2. npx webpack

Крок 1 - разовий. Крок 2 також перевіряє ./node_modules/.bin. Ви можете додати другий крок як сценарій npm доpackage.json , наприклад:

{
   ...
   "scripts": {
      ...
      "build": "npx webpack --mode development",
      ...
   },
   ...
}

а потім використовувати npm run buildдля виконання цього сценарію.

Протестовано це рішення за допомогою npm версії 6.5.0, webpack версії 4.28.4 та webpack-cli версії 3.2.1 для Windows 10, виконуючи всі команди всередині вікна PowerShell. Моя версія nodejs є / була 10.14.2. Я також тестував це на Ubuntu Linux версії 18.04.

Я б радив не встановлювати веб-пакет глобально, зокрема, якщо ви працюєте з безліччю різних проектів, для кожного з яких може знадобитися інша версія веб-пакета. Установка веб-пакету глобально блокує вас до певної версії для всіх проектів на одній машині.


4

Можливо, чиста установка виправить проблему. Ця "команда" видаляє всі попередні модулі та повторно встановлює їх, можливо, тоді, коли модуль webpack неповно завантажений та встановлений.

npm clean-install

3

У мене була така ж проблема, і я просто додав блок коду до свого файлу package.json;

 "scripts": {
   "build": "webpack -d --progress --colors"
 }

а потім запустити команду на терміналі;

npm run build


2

Просто запустіть свій командний рядок (cmd) як адміністратор.


2

Якщо ви щойно клонували репо, спочатку потрібно запустити

npm install

Помилка, яку ви отримаєте, буде створена, якщо вам не вистачає залежностей від проекту. Наведена вище команда завантажить та встановить їх.


2
npx webpack

Це працює для мене. Я використовую Windows 10, і я встановив веб-пакет локально.


2

У мене виникло це питання під час оновлення до React 16.12.0 .

У мене було дві помилки, одна щодо webpack, а інша щодо магазину під час надання DOM.

Помилка веб-пакету:

webpack не розпізнається як внутрішня чи зовнішня команда, функціонуюча програма чи пакетний файл

Рішення для веб-пакетів:

  1. Близько пов'язане рішення VS
  2. Видалити node_modulesпапку
  3. Видалено package-lock.json
  4. npm install
  5. npm rebuild
  6. Повторюйте це 2-3 рази

Помилка магазину:

Тип Store <()> не призначається вводити Store <any, AnyAction>

Магазин рішення:

Пропозиції щодо оновлення моєї версії React не виправили цю помилку для мене, але незалежно від того, я б рекомендував це робити.

Мій код виглядав так:

ReactDOM.render(
        <Provider store={store as any}>
            <ConnectedApp />
        </Provider>,
        document.getElementById('app')
    );

Відповідно до цього рішення


1

Я отримав ту саму помилку, жодне з рішень не працювало на мене, я перевстановив вузол і це відремонтувало моє середовище, все працює знову.


Це я і мав зробити. Я спробував щонайменше три інші "рішення", що надаються тут, і жодне не спрацювало, за винятком видалення та перевстановлення вузла знову.
Сагайдак

1

Для мене це працювало, щоб встановити webpack окремо. Так просто:

$npm install
$npm install webpack

Я не впевнений, чому це потрібно, але це спрацювало.


1

Це нижче задані команди працювали на мене.

npm cache clean --force
npm install -g webpack

Примітка - запустіть ці команди як адміністратор. Після встановлення закрийте командний рядок і перезапустіть його, щоб побачити застосовані зміни.


1

Якщо ви створюєте папку котла для своїх проектів JS, щоб ви могли використовувати модулі JS, webpackі Babelце чудові інструменти.

Не встановлюйте webpackглобально, і після встановлення останніх версій обох package.jsonфайлів буде завантажено та готове до копіювання для майбутніх проектів.

Обов’язково видаліть node_modulesпапку, щоб зменшити розмір файлу у папці вашої коробки, а потім перевстановити використання node_modules npm install.

Я забув запустити npm install і продовжував отримувати цю помилку при спробі запустити свій webpack dev-сервер, поки я не зрозумів, що потрібно запустити, npm installщоб встановити, node_modulesа потім він працював.


Видалити node_modules + npm install змусив мене знову. Дякую!
Брендон Барклі


0

Виправленням для мене була локальна установка webpack як devDependency. Хоча я маю це як devDependenciesвін не встановлений у папці node_modules. Тому я побіг npm install --only=dev


-1

Іноді npm install -g webpack не зберігається належним чином. Краще використовувати npm install webpack --save . Це працювало для мене.


1
-g встановлюється глобально (не ваш локальний проект node_modules + package.json), а - зберігає локально (у ваших локальних node_modules + package.json), тож ця відповідь неправильна.
Джордж

-1

У мене була ця сама проблема, і я не міг її вирішити. Я переглянув кожен рядок коду і не зміг знайти свою помилку. Тоді я зрозумів, що я встановив webpack у неправильній папці. Моя помилка не звертала уваги на папку, в яку я встановлював webpack.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.