Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/39.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 请求时使用gulp_Javascript_Node.js_Request_Gulp - Fatal编程技术网

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,并且您正在传递一个数组,而且AFAIK
parallel
需要一个任务列表,而不是一个处理多个项目的任务。也许这对你有用:

'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'));
});