Команда 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
Проблема с моей настройкой заключалась в том, что webpack был установлен, но webpack-cli отсутствовал.
npm i -g webpack webpack-cli
Если вы предпочитаете локальную установку, то устанавливайте без
-g
флаг
Самый быстрый способ - использовать веб-пакет из другого места, это избавит вас от необходимости устанавливать его глобально или, если npm run webpack
выходит из строя.
Когда вы устанавливаете веб-пакет с npm, он идет внутрьnode_modules\.bin
папка вашего проекта.
в командной строке (от имени администратора)
- перейдите в местоположение проекта, где находится ваш webpack.config.js.
- в командной строке напишите следующее
"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 \ НПМ
чтобы сделать это локально, я сделал следующее
- переименовал папку webpack в глобальных node_modules в _old
- установленный веб-пакет локально в рамках проекта
- отредактировал командную ссылку 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
На самом деле, я получил эту ошибку некоторое время назад. Есть два способа заставить это работать, согласно моим знаниям.
- Сервер не будет обновлять изменения, внесенные в index.js из-за некоторых ошибок веб-пакетов. Итак, перезагрузите ваш сервер.
- Обновление вашего node.js поможет избежать подобных проблем.