问题标签 [through2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1088 浏览

node.js - 获取 through2 流的 JSON/字符串?

我有一堆 zip 文件,每个文件都包含一个 .config 文件。

我想迭代每个 zip,解压缩,读取配置文件,然后使用该配置文件将 zip 文件上传到某处。

这是任务入口点。

这似乎显示了我之后的所有 zip 文件,然后它输出了我想要查看的配置文件。但是此时我对如何解析配置文件以获取配置感到困惑。

我尝试解析configFile,使用读取文件fs.readFileSync(...)

但似乎没有任何效果。配置包含要上传到的凭据,因此我需要阅读它,然后使用它将其发送到 S3 或任何为其配置的位置。

0 投票
2 回答
734 浏览

gulp - 访问转换后的 gulp 流中的文件名

我配置了以下 gulp 任务:

该代码采用 css 文件,缩小它们,添加修订版(例如 main-abcde123.css),用处理后的文件替换源文件的出现。这是通过 gulp-useref/gulp-rev/gulp-rev-replace plugins 完成的(plugins是一个具有所有已加载插件的对象,即 plugins.useref - 指 gulp-useref 插件)此代码工作正常。我正在尝试对同一流中的结果 css 文件进行一些修改。这是通过transformStream()如下所示的函数完成的:

在这种情况下throughgulp-through2插件。

请看下面的代码console.log(file);。我正在尝试获取缩小的 css 的文件名。上面的代码显示以下内容:

即它不包含文件名,而是某种缓冲区。我阅读了through2文档,但没有澄清这些事情。

所以,我的问题是:我怎样才能访问实际的文件名?

0 投票
1 回答
2368 浏览

node.js - 使用 Through2 从 Vinyl 流创建多个文件

我一直试图自己解决这个问题,但还没有成功。我什至不知道如何开始研究这个(虽然我已经尝试了一些谷歌搜索,但无济于事),所以我决定在这里问这个问题。

是否可以从 Through2 对象流中返回多个乙烯基文件?

我的用例是这样的:我通过流接收一个 HTML 文件。我想隔离文件的两个不同部分(使用 jQuery)并将它们返回到两个单独的 HTML 文件中。我可以用一个部分(和一个生成的 HTML 文件)来完成,但我完全不知道如何生成两个不同的文件。

任何人都可以在这里帮我一把吗?提前致谢。

0 投票
1 回答
648 浏览

node.js - 通过图形魔术管道图像只完成了一半

我正在尝试使用 GM https://github.com/aheckmann/gm设置一个转换流以通过管道传输图像。所以我可以做类似的事情:

我已经使用 through2 和 gm 来尝试实现这一目标。它可以工作,但只解析一半的图像,留下很大一部分只是灰色。

在此处输入图像描述

0 投票
1 回答
256 浏览

javascript - 为什么vinyl.isVinyl() 对gulp 发出的乙烯基文件返回false?

我正在学习 gulp 源代码并尝试编写一个 gulp 插件。

现在我对某事感到困惑。

这是我的插件代码如下:

vinyl这是创建文件的 gulp 源代码的一部分:

https://github.com/gulpjs/vinyl-fs/blob/master/lib/src/wrap-with-vinyl-file.js

我的困惑:

transformFunction注册者though2.obj()接收一个file应该是vinyl文件的对象。

为什么vinyl.isVinyl()返回false

为什么file对象没有_isVinyl属性?

0 投票
1 回答
386 浏览

gulp - 使用 through2 在我自己的 gulp 插件中应用另一个 gulp 插件

我正在编写自己的 gulp 插件,看起来像这样......

我想在来自 gulp.src 的缓冲区上应用其他一些 gulp 插件。可以使用through2吗?例如,在调用 through2.obj() 之前,我想应用 gulp-order 插件 - 我该怎么做?

0 投票
2 回答
714 浏览

node.js - gulp - 用字符串包装插件(使用 through2)输出

我想知道如何准确地操作我的 Gulp 插件的输出,例如,无论有多少文件传递给插件,它都会用字符串包装输出。目前我不知道最后一个文件何时完成。

下面的超级简化示例将迭代 3 个文件,并将创建一个名为的新文件output.js,其中将包含三倍的字符串xxx(xxxxxxxxx)。

我希望插件本身包装内容,因此输出将是:+xxxxxxxxx+.

我该怎么做?谢谢!

吞吐文件

最基本的 gulp 插件(index.js):

我知道文件目前只是简单地返回修改,但我不明白的是如何附加文本并返回我想要的连接结果,同时保持它符合 Gulp 工作标准。


“真正的”插件实际上应该用以下方式包装文件结果:

whereFILES_CONTENT实际上是所有文件的串联字符串:

0 投票
2 回答
414 浏览

node.js - 节点 - 将管道步骤抽象为函数

我对 Node 流很熟悉,但我在为抽象代码的最佳实践而苦苦挣扎,我在单个管道步骤中重用了很多代码。

这是我今天所写内容的精简版:

实际工作发生在transform(). 唯一真正改变的是inputStream,transform()outputStream。就像我说的,这是我实际使用的精简版。我在每个管道步骤上都有很多错误处理和日志记录,这最终是我尝试抽象代码的原因。

我要写的是一个管道步骤,如下所示:

我正在努力理解的是如何将这些管道步骤转换为一个接受流并返回流的函数。我看过像 through2 这样的库,但我不确定这如何让我到达我想要去的地方。

0 投票
0 回答
162 浏览

javascript - 为浏览器转换流 JavaScript

我有一个使用库through2来处理转换流的文件。这个库的唯一问题是它不能在浏览器上运行。是否有一个我可以使用的库,它可以做类似的事情through2并在客户端上运行?否则,解决这个问题的最佳方法是什么?任何帮助表示赞赏。谢谢!

0 投票
1 回答
246 浏览

node.js - Converting WriteStream to TransformStream

I have a (somewhat weird) writable stream that I need to convert to a transform stream.

The writable stream, normally, sits at the end of a pipe chain and emits custom events once it has collected enough data for its output. I want it to go in the middle so I can pipe it to another writeStream, i.e:

What I done is the following and it works.

This works fine, does not seem to leak memory and is fairly quick. However node gives me a warning:

So I am a little bit curious if this is the correct way of converting writestreams?