Использование gulp без глобального gulp//edit: и без ссылки на файл bin js

У меня есть gulpfile.js, который отлично работает при вводе gulp в командной строке.

Вся команда gulp bash действительно вызывает вызов указанного js файла в package.json >> bin >> gulp глобально установленного gulp.

Теперь я хочу запустить gulpfile без установленного на глобальном уровне gulp, просто набрав node gulpfile.js, который явно не работает и уже упоминался довольно часто, несмотря на то, что gulp устанавливается локально и требуется в начале gulpfile.js

Использование gulp без инструмента cli позволит очень легко использовать gulp как часть других плагинов npm.

Примечание:
Требование другого gulpfile.js работает с оригинальным gulpfile.js, когда этот оригинальный gulpfile.js был запущен с помощью инструмента gulp cli.

Вопрос:
Каков наилучший способ запуска/требования gulp без использования глобального инструмента cli gulp (//редактирование или привязка к нему локально)? например будучи в состоянии просто потребовать его из другого js файла, когда gulp - это только локально установленная зависимость. (другими словами, начиная с gulp программно изнутри JS без вмешательства CLI любого рода)

Ответ 1

В package.json

"scripts": {
   "gulp": "gulp"  
},

И затем эта команда npm run gulp Также npm предоставляет возможность передавать дополнительные параметры вашим командам. Это имеет место только для npm >= 2.0

Обновление: без ссылки на канал

Вы можете проверить файл node_modules/.bin/gulp или node_modules/gulp/bin/gulp.js, чтобы увидеть, как вы можете начать gulp (интересная строка 129)

Я думаю, что это должно сработать:

var gulp = require('gulp');

gulp.task('default', function() {
    console.log('do something');
});

gulp.start.apply(gulp, ['default']);

Ответ 2

Когда вы устанавливаете его локально (npm install --save-dev gulp), вы можете просто запустить его, вызвав ./node_modules/.bin/gulp all

Или вы можете определить npm script и запустить его с помощью npm run gulp

добавив это к package.json

"scripts": {
  "gulp": "gulp"
}

Ответ 3

В вашем пакете .json добавьте следующее:

"scripts": {
  "gulp": "node ./node_modules/gulp/bin/gulp.js <task-name>" 
}

и запустите из командной строки, набрав npm run gulp.

Это устраняет зависимость от наличия gulp в глобальном масштабе

Ответ 4

Я думаю, что самый прямой ответ заключается в следующем:

node ./node_modules/gulp/bin/gulp.js

Да, добавление в ваши сценарии npm работает, но это не помогает в ситуациях, таких как автоматические сборки, когда вы пытаетесь выполнить задачу gulp для существующего кода из репозитория, и вы не можете легко изменить package.json.

Вообще говоря, ответ Sander Visser, вероятно, "лучший", но это вызов самого низкого уровня, который может быть реализован где угодно.