NPM-Scripts (в package.json) не использует каталог node_modules / .bin - PullRequest
0 голосов
/ 24 октября 2019

У меня есть несколько сценариев в файле package.json:

"scripts": {
    "build": "webpack --config webpack.config.prod.js --progress",
    "dev": "webpack-dev-server --hot --config webpack.config.dev.js",
    "test": "echo \"Error: no test specified\" && exit 1"
    }

Я установил devDependencies в файле package.json (запустив package.json в WebStorm) и npmуспешно создал каталог ./node_modules/.bin/ с необходимыми двоичными файлами.

Проблема

Проблема заключается в том, что при запуске npm run dev для запуска сервера веб-пакетов:

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

Первое решение

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

"dev": "./node_modules/.bin/webpack-dev-server --hot --config webpack.config.dev.js"

Второе решение

Я нахожу другое решение, добавив .bin в глобальную среду PATH :

export PATH="$PATH:./node_modules/.bin"

Вопрос

Я не могу использовать первое решение, потому чтоЯ не работаю один в этом проекте, и у них нет проблем. Кроме того, я прочитал, что это должно работать само по себе (npm).

Второе решение: я не хочу добавлять пакеты проекта (двоичные файлы) в мою глобальную среду PATH.

Возможно, что npm автоматически добавляет папку .bin в путь к среде.

Я хочу понять, что происходит (почему это работает для других автоматически, а не для меня)?)

Спасибо за чтение и помощь, я думаю, что я не одинок в этом :).

1 Ответ

1 голос
/ 25 октября 2019

Окончательное решение

У меня был ":" на моем пути к *. / Node_modules / .bin, но ":" используется в качестве разделителя для среды PATH (для разделения различных путейв двоичные каталоги). Поэтому оболочка никогда не достигала каталога . / Node_modules / .bin , потому что путь был таким:

/ Path / to / the / Project_19: 20 / node_modules /. bin

Никогда не используйте "/" в именах файлов / папок!

":" произошло из-за косой черты в имени папки.

...