Запуск исполняемого файла после установки через JSPM

Я пытаюсь понять, как можно запускать исполняемые файлы после установки модуля с помощью JSPM. Например, если я запускаю jspm install gulp, я ожидаю, что смогу запустить следующую команду:

./jspm_packages/npm/gulp\@3.8.11/bin/gulp.js

На самом деле было бы лучше, если бы jspm справился с этим, чтобы был скрытый каталог bin, содержащий все извлеченные исполняемые файлы (например, gulp) в следующем месте:

./jspm_packages/.bin

Таким образом, я мог бы просто добавить одну переменную среды PATH, которая позволила бы запускать эти исполняемые файлы.

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

[jspm-test]$ ./jspm_packages/npm/gulp\@3.8.11/bin/gulp.js 
./jspm_packages/npm/[email protected]/bin/gulp.js: line 1: /bin: Is a directory
./jspm_packages/npm/[email protected]/bin/gulp.js: line 2: syntax error near unexpected token `('
./jspm_packages/npm/[email protected]/bin/gulp.js: line 2: `(function(process) {'

Есть ли какой-то другой способ, которым я должен идти по этому поводу?


person Joshua Purcell    schedule 23.02.2015    source источник


Ответы (2)


По моему опыту, это странно с JSPM, так как JSPM больше ориентирован на deps для вашего приложения, которые фактически находятся в производстве в браузере. Что я делаю в своих проектах, так это устанавливаю модули, которые мне нужно запускать со сценариями/в dev (gulp, karma, express и т. д.), используя NPM, затем вы можете запускать их с помощью node:

node ./node_modules/karma/bin/karma.js <args>

Это немного странно, но если вы думаете об этом как о NPM, обрабатывающем локальные, «исполняемые» deps, которые не используются в производстве, и JSPM, обрабатывающем deps для вашего приложения, которые будут объединены и отправлены, это имеет смысл.

person SleepyProgrammer    schedule 18.03.2016

Я согласен с ответом @SleepyProgrammer.

JSPM — это менеджер пакетов, специально предназначенный для клиентских зависимостей, очень похожий на Bower.

Странно устанавливать gulp с внешними зависимостями вашего проекта.
Лучше установить gulp, karma, express и тому подобное с npm в качестве зависимостей для разработки, чтобы собирать и обрабатывать вещи на локальном сервере разработки, а затем подавайте результат в виде файлов js, css, html...

простой $(npm bin)/gulp -v вариант

При этом я установил фермент с jspm, чтобы мои тесты могли его импортировать.


Если вы хотите использовать jspm в своих проектах узлов, вы всегда можете использовать эту команду:

jspm run script

См. документацию: http://jspm.io/docs/nodejs-usage.html

person GBL    schedule 10.02.2017