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

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

Fangxing
источник
8

Пряжа

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

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

pme
источник
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.

RajaSekhar K
источник
1

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

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

user458617
источник
1

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

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

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

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

S_K
источник
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. Это сработало!

пользователь7587906
источник
0

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

ulou
источник
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