Webpack - webpack-dev-server: команда не найдена


98

Я работаю над веб-приложением React, используя веб-пакет, в некоторой степени вместе с этим руководством .

Случайно я добавил в свой git папку node_modules. Затем я снова удалил его, используя git rm -f node_modules/*.

Теперь, когда я пытаюсь запустить сервер webpack, я получаю следующую ошибку:

> webpack-dev-server -d --config webpack.dev.config.js --content-base public/ --progress --colors

sh: webpack-dev-server: command not found

npm ERR! Darwin 14.4.0
npm ERR! argv "node" "/usr/local/bin/npm" "run" "devserve"
npm ERR! node v0.12.4
npm ERR! npm  v2.10.1
npm ERR! file sh
npm ERR! code ELIFECYCLE
npm ERR! errno ENOENT
npm ERR! syscall spawn
npm ERR! Blabber@0.0.1 devserve: `webpack-dev-server -d --config webpack.dev.config.js --content-base public/ --progress --colors`
npm ERR! spawn ENOENT

Сначала я подумал, что это только мой проект, но потом я проверил контрольные точки кода в руководстве: та же ошибка! Так что, похоже, что-то не так во всем мире.

Вот что я пробовал до сих пор:

  • rm node_modules и переустановите с помощью npm install
  • npm cache cleanкак кто-то упомянул об этой проблеме на github
  • установить веб-пакет глобально с помощью npm install -g webpack
  • полностью удалить node и npm из моей системы (используя это руководство ) и переустановить с помощью brew

Сообщение об ошибке все еще сохраняется. Что еще можно попробовать?

PS: Содержание webpack.dev.config.js:

var config = require('./webpack.config.js');
var webpack = require('webpack');

config.plugins.push(
  new webpack.DefinePlugin({
    "process.env": {
      "NODE_ENV": JSON.stringify("development")
    }
  })
);

module.exports = config;

Пожалуйста, предоставьте содержимое файла webpack.dev.config.js.
stdob--

У меня та же ошибка, и webpack-dev-server определенно находится прямо в папке
Дэймон

Ответы:


166

Ладно, это было легко:

npm install webpack-dev-server -g

Что меня смутило, что мне это сначала не понадобилось, наверное, с новой версией все изменилось.


30
У меня почему-то без -gфлага не получилось . Итак: npm i webpack-dev-server -gрешил проблему.
Мартин Велчевски

2
Мне тоже нужен флаг -g
Alex Grande

5
Мне также нужно было npm install webpack -g, потому что сначала он не был установлен глобально
TJ Trapp

1
Это было запутано, потому что на странице веб-пакета в их примере нет опции -g. Если вы не хотите устанавливать глобально, вы можете создать сценарий в package.json и запустить его через npm run.
kingd9

Я пытаюсь удалить этот пакет с помощью этой команды «npm uninstall webpack-dev-server -g --save», но не удален, дайте мне знать, как удалить этот пакет.
Bhavin

32

К вашему сведению, чтобы получить доступ к любому сценарию через командную строку, как вы пытались, вам необходимо зарегистрировать сценарий как сценарий оболочки (или любой сценарий, такой как .js, .rb) в системе, например эти файлы в каталоге /usr/binв UNIX. И система должна знать, где их найти. т.е. местоположение должно быть загружено в $PATHмассив.


В вашем случае сценарий webpack-dev-serverуже установлен где-то внутри ./node_modulesкаталога, но система не знает, как получить к нему доступ. Итак, чтобы получить доступ к команде webpack-dev-server, вам также необходимо установить скрипт в глобальной области .

$ npm install webpack-dev-server -g

Здесь -gимеется в виду глобальная область видимости.


Однако это не рекомендуется, потому что вы можете столкнуться с проблемами конфликта версий; так, вместо этого вы можете установить команду в npm«S package.jsonфайл , например:

  "scripts": {
    "start": "webpack-dev-server -d --config webpack.dev.config.js --content-base public/ --progress --colors"
   }

Этот параметр позволит вам получить доступ к нужному сценарию с помощью простой команды

$ npm start

Так коротко, чтобы запоминать и играть. И npmзнает местонахождение модуля webpack-dev-server.


Но когда я бегу node_modules/.bin/webpack-dev-server, почему он сказал, что это недопустимая команда? Я думаю, что бег node_modules/.bin/webpack-dev-serverприравнивается к бегуnpm run dev
Чор

15

Скрипт webpack-dev-serverуже установлен в каталоге ./node_modules. Вы можете установить его снова глобально,

sudo npm install -g webpack-dev-server

или запустите это так

./node_modules/webpack-dev-server/bin/webpack-dev-server.js -d --config webpack.dev.config.js --content-base public/ --progress --colors

. означает посмотреть его в текущем каталоге.


8

Пряжа

У меня возникла проблема при запуске: yarn start

Исправлено с запуском сначала: yarn install


1
yarn installВ моем случае просто сработало. Не уверен, в чем была причина.
Hinrich

1
или как npm iвам больше нравится
Акин Хван

5

У меня была такая же проблема, но следующие шаги помогли мне решить ее.

  1. Локальная установка 'webpack-dev-server' (в каталоге проекта, поскольку он не выбирался из глобальной установки)

    npm install --save webpack-dev-server

Можно проверить, существует ли папка webpack-dev-server внутри node_modules.

  1. Запуск с использованием npx для прямого запуска

npx webpack-dev-server --mode development --config ./webpack.dev.js

npm run start также отлично работает там, где ваша запись в сценариях package.json должна быть похожей на приведенную выше, например, без npx.


1

Я обнаружил, что принятый ответ работает не во всех сценариях. Чтобы убедиться, что он работает на 100%, нужно ТАКЖЕ очистить кеш npm. Либо напрямую перейдите к кешу и снимите блокировки, кеши, anonymous-cli-metrics.json; или можно попробовать npm cache clean.

Поскольку автор очистил кеш перед тем, как попробовать рекомендованное решение, возможно, это не удалось сделать его частью предварительных условий.


1

Для глобальной установки: npm install webpack-dev-server -g

Для локальной установки npm install --save-dev webpack

Когда вы ссылаетесь на webpack в файле package.json, он пытается найти его в расположении node_modules \ .bin \

После локальной установки файл wbpack будет создан в папке: \ node_modules \ .bin \ webpack


1

Я заметил ту же проблему после установки VSCode и добавления удаленного репозитория Git. Каким-то образом /node_modules/.binпапка была удалена и запущена npm install --save webpack-dev-serverв командной строке, переустановила отсутствующую папку и устранила мою проблему.


0

Я устанавливаю, а npm install --save-dev webpack-dev-serverзатем устанавливаю package.json и webpack.config.js следующим образом: setting .

Затем я запускаю webpack-dev-server и получаю эту ошибку .

Если не пользуюсь npm install -g webpack-dev-serverдля установки, то как исправить?

Исправил ошибку configuration has an unknown property 'colors'удалением colors:true. Это сработало!


0

У меня была аналогичная проблема с Yarn , ничего из вышеперечисленного у меня не сработало, поэтому я просто удалил ./node_modulesи запустил, yarn installи проблема исчезла.


0

npm install webpack-dev-server -g - ОС Windows

Лучше использовать sudo в linux, чтобы избежать ошибок разрешения

sudo npm установить webpack-dev-server -g

Вы можете использовать sudo npm install webpack-dev-server --save, чтобы добавить его в package.json.

Иногда вам может потребоваться выполнить следующие команды.

npm install webpack-cli --save или npm install webpack-cli -g


Пожалуйста, не советуйте использовать sudo с npm.
richardsonwtr

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