rho*_*son 19 stream node.js gulp
我正在使用gulp构建一个全局匹配的文件流,并将它们的嵌套结构全部移动到一个新位置.要做到这一点,我首先想要构建一个简单的"直通"流,看看如果我从gulp.src()传递给它的话.
这是我的测试gulpfile.js:
var through = require("through");
var fs = require("fs");
function write(file) {
console.log(file);
console.log(file.toString());
}
gulp.task("move", function () {
return gulp.src("./**")
.pipe(through(write));
});
Run Code Online (Sandbox Code Playgroud)
如果我在命令行上运行gulp'move'任务,我得到如下输出:
<File "some/path">
[object Object]
<File "some/path/file.js" <Buffer 2f 2a 0a 0a 4f 72 67 69 6e 61 6c 20 53 74 79 6c 65 20 66 72 6f 6d 20 65 74 68 61 6e 73 63 68 6f 6f 6e 6f 76 65 72 2e 63 6f 6d 2f 73 6f 6c 61 72 69 7a 65 ...>>
[object Object]
Run Code Online (Sandbox Code Playgroud)
那些物品是什么?我该如何与他们互动?
Ove*_*ous 26
那些是乙烯基物.它们是通过gulp流传递的核心数据类型.包含有关文件的信息(例如路径信息和内容作为缓冲区或流).您可以使用gulp-debug更好地查看数据.
如果你想移动一堆文件,同时保留它们的相对路径,你可以执行以下操作之一,而不需要自己深入研究代码:
gulp.src('/a/single/src/path/**/*.foo').pipe(gulp.dest('/a/single/dest/path'));
Run Code Online (Sandbox Code Playgroud)
或者,如果你有一堆不同的globs:
gulp.src(['/a/src/path/foo/**/*.foo', '/a/src/path/bar/**/*.bar'], {base: '/a/src/path/'})
.pipe(gulp.dest('/a/dest/path/'));
Run Code Online (Sandbox Code Playgroud)
大多数情况下,你将使用gulp插件来操作文件,然后将结果传递给gulp.dest(),而不是自己操纵它们.
如果您需要操作文件,可以使用一些插件来帮助:
use*_*819 10
您可以使用以下js查看文件属性:
var propValue;
for(var propName in file) {
propValue = file[propName];
console.log('name:' + propName, ', value:<<<',propValue,'>>>');
}
Sample Output
name:history , value:"C:\Temp\test.txt"
name:cwd , value:"C:\Temp"
name:base , value:"C:\Temp"
name:_contents , value: full file contents
name:isBuffer , value:"function () {
name:isStream , value:"function () {
name:isNull , value:"function () {
name:isDirectory , value:"function () {
name:clone , value:"function (opt) {
name:pipe , value:"function (stream, opt) {
name:inspect , value:"function () {
name:stat , value:<<< { dev: 0,
mode: 33206,
nlink: 1,
uid: 0,
gid: 0,
rdev: 0,
ino: 0,
size: 874,
atime: Sat Sep 19 2015 14:34:51 GMT+1000 (AUS Eastern Standard Time),
mtime: Sat Sep 19 2015 14:34:51 GMT+1000 (AUS Eastern Standard Time),
ctime: Sat Sep 12 2015 14:59:40 GMT+1000 (AUS Eastern Standard Time) } >>>
Usage:
console.log('file name:', file.relative);
console.log('file current working directory:', file.cwd);
console.log('file isDirectory:', file.isDirectory());
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
18275 次 |
| 最近记录: |