javascript - instalar - request nodejs github
Usando gulp con solicitud (2)
Tengo el siguiente 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''));
Me aparece el siguiente error:
Error: options.uri is a required argument
Con este método intento dictar administradores de paquetes del lado del cliente, como Bower. ¿Hay alguna manera de usar la request
con un gulp
y recorrer una lista de objetos?
EDITAR:
Coloqué este código para probarlo, solo devolviendo la primera línea del ciclo:
gulp.task(''vendor'', () => {
for (let i=0; i<paths.vendor.length; i++) {
return console.log(paths.vendor[i]);
};
});
Al igual que:
gulp.task(''vendor'', (res) => {
const url = request.get(paths.vendor[index++]).pipe(res);
return gulp.src(url)
.pipe(gulp.dest(''public/vendor''));
});
No puede pasar una URL a gulp.src()
. La instancia de gulp
hereda src()
y dest()
de vinyl-fs
lo que significa que solo puede usarlo para leer y escribir en el sistema de archivos local.
Prueba gulp-download
lugar, que envuelve la request
en una transmisión de vinilo:
var download = require(''gulp-download'');
gulp.task(''vendor'', () => {
return download(paths.vendor)
.pipe(gulp.dest(''public/vendor''));
});
request.get
solo funciona en un URI a la vez y está pasando una matriz, también AFAIK parallel
espera una lista de tareas, no una tarea que procesa muchos elementos. Tal vez esto funcione para usted:
''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));