Команда webpack не работает

Я новичок в Node Js и Webpack. Я пытался запустить проект с загрузчиками модулей.

Во-первых, я установил nodeJs и NPM и создал новый каталог под названием tutorial, Я использовал командную строку, чтобы перейти в этот каталог, а затем выполнил следующую команду npm init а затем установил веб-пакет через npm используя команду ниже:

npm install -S webpack

Первая команда установила веб-пакет локально в проект в каталоге 'node-modules', и я могу запустить свой проект, выполнив это:

nodejs node-modules/webpack/bin/webpack.js

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

Одним из решений этой проблемы была глобальная установка веб-пакета на моей машине, что я и сделал с помощью следующей команды:

npm install -g webpack

Это установленный Webpack, и теперь у меня есть команда Webpack. Однако эта команда, похоже, не работает или вообще ничего не делает. Когда я пытаюсь запустить его из корневого каталога моего проекта, он вообще ничего не делает (см. Снимок экрана)

Пожалуйста, скажите мне, что я делаю неправильно!

8 ответов

Решение

webpack не только в вашем node-modules/webpack/bin/ каталог, он также связан в node_modules/.bin,

У тебя есть npm bin Команда, чтобы получить папку, куда npm установит исполняемые файлы.

Вы можете использовать scripts собственность вашего package.json использовать веб-пакет из этого каталога, который будет экспортироваться.

"scripts": {
  "scriptName": "webpack --config etc..."
}

Например:

"scripts": {
  "build": "webpack --config webpack.config.js"
}

Затем вы можете запустить его с:

npm run build

Или даже с аргументами:

npm run build -- <args>

Это позволит вам иметь вас webpack.config.js в корневой папке вашего проекта без глобально установленного веб-пакета или конфигурации вашего веб-пакета в node_modules папка.

Вы можете запустить npx webpack, Команда npx, которая поставляется с Node 8.2/npm 5.2.0 или выше, запускает двоичный файл webpack (./node_modules/.bin/webpack) пакета webpack. Источник информации: https://webpack.js.org/guides/getting-started/

Мне пришлось переустановить веб-пакет, чтобы он работал с моей локальной версией веб-пакета, например:

$ npm uninstall webpack
$ npm i -D webpack
npm i webpack -g

устанавливает веб-пакет глобус

Проблема с моей настройкой заключалась в том, что webpack был установлен, но webpack-cli отсутствовал.

      npm i -g webpack webpack-cli

Если вы предпочитаете локальную установку, то устанавливайте без -gфлаг

Самый быстрый способ - использовать веб-пакет из другого места, это избавит вас от необходимости устанавливать его глобально или, если npm run webpack выходит из строя.

Когда вы устанавливаете веб-пакет с npm, он идет внутрьnode_modules\.binпапка вашего проекта.

в командной строке (от имени администратора)

  1. перейдите в местоположение проекта, где находится ваш webpack.config.js.
  2. в командной строке напишите следующее
"C:\Users\..\ProjectName\node_modules\.bin\webpack" --config webpack.config.vendor.js

Установка веб-пакета с параметром -g устанавливает веб-пакет в папку в

C: <.. Profileusername> \ Users \ \ AppData \ Roaming \ НПМ \node_modules

то же самое с webpack-cli и webpack-dev-server

Вне глобального node_modules создается ссылка для запуска веб-пакета из командной строки

C: <.. Profileusername> \ Users \ \ AppData \ Roaming \ НПМ

чтобы сделать это локально, я сделал следующее

  1. переименовал папку webpack в глобальных node_modules в _old
  2. установленный веб-пакет локально в рамках проекта
  3. отредактировал командную ссылку webpack.cmd и указал webpack.js заглянуть в мою локальную папку node_modules в моем приложении

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

Таким образом, если у вас есть proj1, proj2 и proj3 с установленными локальными узлами node_modules и локальным веб-пакетом (без использования -g при установке), вам придется создавать неуниверсальные имена ссылок, а не просто веб-пакет.

Примером здесь может быть создание webpack_proj1.cmd, webpack_proj2.cmd и webpack_proj3.cmd и в каждом cmd следуйте пунктам 2 и 3 выше

PS: не забудьте обновить свой package.json этими изменениями, иначе вы получите ошибки, так как он не найдет команду webpack

На самом деле, я получил эту ошибку некоторое время назад. Есть два способа заставить это работать, согласно моим знаниям.

  1. Сервер не будет обновлять изменения, внесенные в index.js из-за некоторых ошибок веб-пакетов. Итак, перезагрузите ваш сервер.
  2. Обновление вашего node.js поможет избежать подобных проблем.
Другие вопросы по тегам