Javascript 请求时使用gulp
我有以下Javascript 请求时使用gulp,javascript,node.js,request,gulp,Javascript,Node.js,Request,Gulp,我有以下Gulpfile.js: 'use strict'; const gulp = require('gulp'), request = require('request'); const paths = { vendor: [ 'https://raw.githubusercontent.com/jquery/jquery-dist/master/dist/jquery.min.js', 'https://raw.githubusercontent
Gulpfile.js
:
'use strict';
const gulp = require('gulp'),
request = require('request');
const paths = {
vendor: [
'https://raw.githubusercontent.com/jquery/jquery-dist/master/dist/jquery.min.js',
'https://raw.githubusercontent.com/kenwheeler/slick/master/slick/slick.js'
]
};
gulp.task('vendor', (res) => {
const url = request.get(paths.vendor).pipe(res);
return gulp.src(url)
.pipe(gulp.dest('public/vendor'));
});
gulp.task('default', gulp.parallel('vendor'));
我得到以下错误:
Error: options.uri is a required argument
使用这种方法,我试图听写客户端包管理器,比如Bower。有没有办法将请求
与吞咽
一起使用,并在对象列表中循环
编辑:
我将此代码用于测试,只返回循环的第一行:
gulp.task('vendor', () => {
for (let i=0; i<paths.vendor.length; i++) {
return console.log(paths.vendor[i]);
};
});
request.get
一次只能处理一个URI,并且您正在传递一个数组,而且AFAIKparallel
需要一个任务列表,而不是一个处理多个项目的任务。也许这对你有用:
'use strict';
const gulp = require('gulp'),
request = require('request');
const paths = {
vendor: [
'https://raw.githubusercontent.com/jquery/jquery-dist/master/dist/jquery.min.js',
'https://raw.githubusercontent.com/kenwheeler/slick/master/slick/slick.js'
]
};
let index = 0;
gulp.task('vendor', (res) => {
const url = request.get(paths.vendor[index++]).pipe(res);
return gulp.src(url)
.pipe(gulp.dest('public/vendor'));
});
let parallelTasks = (new Array(paths.vendor.length)).fill('vendor');
gulp.task('default', gulp.parallel(...parallelTasks));
无法将URL传递到
gulp.src()
。gulp
实例继承了src()
和dest()
,这意味着您只能使用它读取和写入本地文件系统
尝试将请求
包装成乙烯基流:
var download = require('gulp-download');
gulp.task('vendor', () => {
return download(paths.vendor)
.pipe(gulp.dest('public/vendor'));
});
request.get({uri:paths.vendor})
我收到了一条错误消息:错误:无效的uri”/“
并行像整体一样精简了代码,因此它有更多的任务。很抱歉没有输入。我得到了TypeError:dest.on不是.pipe(res)的函数
错误代码>。更新了我的问题。
var download = require('gulp-download');
gulp.task('vendor', () => {
return download(paths.vendor)
.pipe(gulp.dest('public/vendor'));
});