2015-10-13 63 views
0

我有一个CDN(或远程)脚本列表(包含完整的URL)。我想将其转换为一个连接文件(all.js)。 我可以用吞噬吗?换句话说,它是正确的工具吗?将CDN链接列表连接到一个文件(gulp)

// Does not work (no error, but no file generated) 
var gulp = require('gulp'); 
var concat = require('gulp-concat'); 

gulp.task('scripts', function() { 
    return gulp.src(['https://code.jquery.com/jquery-2.1.4.min.js']) 
    .pipe(concat('all.js')) 
    .pipe(gulp.dest('./dist/')); 
}); 

我是新来的大口,我没有发现一些搜索后的答案,也许我不知道如何搜索或我不明白一饮而尽目标。

回答

0

我不能给你一个完整的答案,因为我没有做过这样的事情,但我会做什么,首先下载(使用GET请求)将其保存在临时文件夹中,然后让每一个文件用gulp下载并将它们连接成一个文件,如果它只是Javascript,则将其丑化。

但事情是你需要先下载它。

PD:您可以使用fs.unlink删除临时文件。 PD2:您可以先使用Gulp下载它,Gulp是Node后继;)

祝您好运!

-2

这个答案就是从这里取: http://fettblog.eu/gulp-merge-cdn-files-into-your-pipeline/

var gulp = require('gulp'); 
var source = require('vinyl-source-stream'); 
var request = require('request'); 
var merge = require('merge2'); 
var concat = require('gulp-concat'); 
var buffer = require('gulp-buffer'); 

gulp.task('js', function() { 

    var jquery = request('http://code.jquery.com/jquery-latest.js') /* 1 */ 
    .pipe(source('jquery.js'));         /* 2 */ 
    var main = gulp.src('main.js');         /* 3 */ 

    return merge(jquery, main)          /* 4 */ 
    .pipe(buffer())            /* 5 */ 
    .pipe(concat('concat.js')) 
    .pipe(gulp.dest('dist')); 
}) 

1)我们要求从jQuery CDN的最新jQuery的版本。请求包允许流式传输。我们得到的回报是可读的流。

2)我们用乙烯源流创建一个有效的乙烯基文件对象。这使得与咕嘟咕嘟

3)我们的主要文件被从文件系统如常

4)merge2包允许我们结合两个流

5)两个流的内容选择的兼容转换为文本缓冲区,所以gulp-concat可以处理它们。

+0

请不要只是放弃这样的链接,你可以构建一个适当的回应,并说明你的来源,如果需要的话。问题是:如果您的链接无法访问会发生什么?你的问题仍然是答案? – dkg