首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义目标/运行任意代码

自定义目标/运行任意代码
EN

Stack Overflow用户
提问于 2015-01-06 15:52:24
回答 1查看 74关注 0票数 3

make中,可以定义与实际代码无关的自定义目标,因为它们与语言无关。

代码语言:javascript
复制
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文件而不用使用任何时候都没有足够的插件可供gulp使用?同样,我可以通过直接调用coffeelint模块来将coffeescript与coffeelint连接起来:

代码语言:javascript
复制
var gulp = require('gulp')
  , coffeelint = require('coffeelint')
  ;

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

或者这只能用插件来完成吗?

另一个例子是运行这样的任意代码:

代码语言:javascript
复制
var spawn = require('child_process').spawn;
gulp.task('blue', function() {
  var child = spawn('ls');
  /* do stuff with spawned child process */
});
EN

回答 1

Stack Overflow用户

发布于 2015-01-06 18:46:04

我为browserify使用vinyl-source-stream做了这样的事情--基本上允许您按原样使用库,而不是使用gulp-*插件。

代码语言:javascript
复制
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));
});

以下是npm - https://www.npmjs.com/package/vinyl-source-stream

使用传统的文本流开始您的吞咽或乙烯基管道,使更好的互操作性与现有的npm流生态系统。

也许这会对你有帮助?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27802244

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档