在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编写的代码这一事实,例如;它也不依赖于我使用Make内置函数,例如foreach
。
有没有办法使用javascript / <INSERT-NAME>script
文件没有使用可用于gulp的插件?如同,我可以通过直接调用coffeelint
模块将{coffeescript'与coffeelint
lint:
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 */
});
答案 0 :(得分: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));
});
继承人npm - https://www.npmjs.com/package/vinyl-source-stream
在gulp或vinyl的开头使用传统的文本流 管道,与现有的npm实现更好的互操作性 流生态系统。
也许这会对你有帮助吗?