2015-01-06 2 views
3

В make можно определить пользовательские цели, которые не имеют отношения к действительному коду, на котором они действуют, в том смысле, что они являются агностиками языка.пользовательские цели/запуск произвольного кода

release_sortof: 
     @echo packaging release... 
     tar czf release.tar.gz file1 file2 file3 
     ls /dev/null 
     ls /dev/stderr 
     ls /dev/stdout 

Я знаю, что в приведенном выше примере это ужасно, но дело в том, что я пытаюсь показать, что код в release_sortof мишени не зависит от того, что мой проект использует код, написанный на C, например, ; и не зависит от меня, используя встроенные встроенные функции, такие как foreach.


Есть ли способ работать с JavaScript/<INSERT-NAME>script файлов без используя либо недостаточно плагинов, доступных для глотка? Как и в, я мог нибудь вкусненькое мой CoffeeScript с coffeelint путем прямого вызова coffeelint модуль:

var gulp = require('gulp') 
    , coffeelint = require('coffeelint') 
    ; 

gulp.task('lint', function() { 
    /* run coffeelint on source files */ 
}); 

Или это может быть сделано только с помощью плагинов?


Другой пример должен был бы выполнить произвольный код следующим образом:

var spawn = require('child_process').spawn; 
gulp.task('blue', function() { 
    var child = spawn('ls'); 
    /* do stuff with spawned child process */ 
}); 
+1

Да, вы можете. На самом деле, рекомендуется * не использовать (писать) «плагины-обертки»: https://github.com/gulpjs/gulp/blob/master/docs/writing-a-plugin/guidelines .md –

ответ

0

я такого рода вещи для browserify использования vinyl-source-stream - в основном позволяет использовать библиотеку как он есть, а не с помощью gulp-* плагины.

var browserify = require('browserify'), 
    gulp = require('gulp'), 
    source = require('vinyl-source-stream'), 
    stringify = require('stringify'), 
    plumber = require('gulp-plumber'), 
    config = require('../config').scripts; 

gulp.task('browserify', function() { 
    return browserify(config.app) 
     .transform(stringify(['.html'])) 
     .bundle() 
     .pipe(plumber()) 
     .pipe(source('bundle.js')) 
     .pipe(gulp.dest(config.dest)); 
}); 

Heres НОГО - https://www.npmjs.com/package/vinyl-source-stream

Используйте обычный текст потоки в начале вашей глотки или виниловых трубопроводов, что делает для более хорошей совместимости с существующей НПМ потоком экосистемой.

Возможно, это вам поможет?

Смежные вопросы