javascript - 直接流式传输到 gulp.dest

标签 javascript node.js gulp

我想制作返回流的 npm 模块,然后将其通过管道传输到其他应用程序中的 gulp.dest

例子:

// some-module.js
module.exports = function() {
  return require('fs').createReadStream('someFile.txt');
}

// gulpfile.js
gulp.task('default', function() {
  var myModule = require('./some-module');
  myModule().pipe(gulp.dest('./'));
});

不幸的是,我得到了这段代码:

path.js:313
        throw new TypeError('Arguments to path.resolve must be strings');
              ^
TypeError: Arguments to path.resolve must be strings

它是这样工作的

// gulpfile.js
gulp.task('default', function() {
  var myModule = require('./some-module');
  var fs       = require('fs');
  myModule().pipe(fs.createWriteStream('someOtherFile.txt');
});

最佳答案

您可以使用 vinyl-source-stream将您的流转换为兼容 gulp 的流。

得到它:

npm install vinyl-source-stream --save-dev

用法:

// gulpfile.js
var source = require('vinyl-source-stream');

gulp.task('default', function() {
  var myModule = require('./some-module');
  myModule()
    .pipe(source('someOtherFile.txt'))
    .pipe(gulp.dest('./'));
});

source() 的参数将是 gulp.dest() 使用的文件名。

关于javascript - 直接流式传输到 gulp.dest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30801567/

相关文章:

javascript - React-Navigation:无法使用嵌套导航器隐藏标题

javascript - select from 指令的 Angular 动态更改选项

javascript - 将参数传递给 Angular ng-include

node.js - 获取用户 ID 后,Firebase 函数 onCreate 方法无法在 Firestore 上运行

node.js - 捕获自定义错误在 Bluebird 中不起作用

javascript - Node.js 应用程序中的阻塞功能

selenium - 在 Gulp 中自动运行 webdriver 进行端到端测试

javascript - 打开模式时防止 BODY 滚动

javascript - Gulp:如何按顺序组合任务?

javascript - 如何从文件夹及其子文件夹读取文件并写入JSON文件?