我有以下gulp任务:
// Compile ES6 to ES5 and copy to dist
gulp.task('babel', () =>
gulp.src([...paths.js, '!gulpfile.babel.js'], { base: '.' })
.pipe(plugins.newer('dist'))
.pipe(plugins.sourcemaps.init())
.pipe(plugins.babel())
.pipe(plugins.sourcemaps.write('.', {
includeContent: false,
sourceRoot(file) {
return path.relative(file.path, __dirname);
}
}))
.pipe(gulp.dest('dist'))
);

根据Gulp Doc(gulp.src),我学会了gulp.src
发出匹配提供的glob或数组的文件。
但我无法理解' ... paths.js'这里。
没有以' paths.js'命名的文件。在项目目录中。
有没有人可以帮助我理解它?
答案 0 :(得分:5)
let a = [1, 2, 3];
let b = [...a, 4, 5];
console.log(b); // 1, 2, 3, 4, 5
是ES2015(又名“ES6”)spread syntax:它采用可迭代的内容(如数组)并将其展开为数组中的离散元素。
示例:
gulp.src([...paths.js, '!gulpfile.babel.js'], { base: '.' })
所以
paths.js
...正在创建一个新数组,其内容为'!gulpfile.babel.js'
,后跟src
,并将该数组传递给paths.js
。我假设concat
是一个数组;如果是这样,在这种特殊情况下,它可以替换为gulp.src(paths.js.concat('!gulpfile.babel.js'), { base: '.' })
:
function testing(a, b, c) {
console.log("a = " + a);
console.log("b = " + b);
console.log("c = " + c);
}
let x = [1, 2, 3];
testing(...x); // Shows:
// a = 1
// b = 2
// c = 3
您还可以在函数调用中使用扩展语法:
#include <iostream>
#include <cstdint>
#include <iomanip>
#include <string>
int main()
{
std::cout << "sizeof(char) = " << sizeof(char) << std::endl;
std::cout << "sizeof(std::string::value_type) = " << sizeof(std::string::value_type) << std::endl;
std::string _s1 ("abcde");
std::cout << "s1 = " << _s1 << ", _s1.size() = " << _s1.size() << std::endl;
std::string _s2 ("abcdé");
std::cout << "s2 = " << _s2 << ", _s2.size() = " << _s2.size() << std::endl;
return 0;
}