Gulp-Concat文件的顺序然后是任何其他的js文件
Gulp Concat files in order then any other js files
如何按照特定顺序添加一些js文件,然后再添加其他文件?我正考虑这样做:
var concat = require('gulp-concat');
gulp.task('scripts', function() {
return gulp.src(['./lib/file3.js', './lib/file1.js', './lib/file2.js', './lib/**/*.js'])
.pipe(concat('all.js'))
.pipe(gulp.dest('./dist/'));
});
不确定这是否会重新添加已经连接的文件,因为我使用的是glob。
Gulp订单可能就是您想要的。我还没有测试下面的代码,但文档在某种程度上表明它会起作用。如果它不起作用,我建议您尝试对最后一个globstar更加具体,以便在可能的情况下确定目录范围。
var order = require("gulp-order");
gulp.task('scripts', function() {
return gulp.src('./lib/**/*.js')
.pipe(order([
'file3.js',
'file1.js',
'file2.js',
'**/*.js'
]))
.pipe(concat('all.js'))
.pipe(gulp.dest('./dist/'));
});
还有一篇文章提供了一个工作示例。
gulp.src()
使用node-glob
。如果你看一下node-glob
的源代码,作者会给出算法的伪代码描述(简称,完整伪代码见源代码):
// 1. Get the minimatch set
// 2. For each pattern in the set, PROCESS(pattern, false)
// 3. Store matches per-set, then uniq them
这对你来说意味着:
订单得以保留如果您将文件./lib/file3.js
、./lib/file1.js
和./lib/file2.js
按该顺序显式传递给gulp.src()
,则它们将按该顺序发出。在这种情况下不需要使用gulp-order
。
无重复由于这些文件是uniqed的,因此它们都不会在您的gump流中发出两次。事实上,node-glob
采取了特定的预防措施来防止大括号扩展的重复:
nounique
在某些情况下,大括号展开模式可能会导致同一文件在结果集中多次显示。默认情况下,此实现可防止结果集中出现重复。设置此标志可禁用该行为。
以及符号链接:
请注意,符号链接目录不会作为**的一部分进行爬网,尽管它们的内容可能与模式的后续部分相匹配。这可以防止无限循环和重复等。
TLDR:是的,你的代码有效。
相关文章:
- 生成pdf或其他非html文件时的错误处理
- 为其他JS生成定义“;编译器”;来自TypeScript定义文件
- 如何将JS文件从其他文件夹链接到页面
- 输入类型=文件验证停止其他输入类型验证
- 将不同上传的文件显示为缩略图或任何其他方式
- 使用metro-uiJS对话框调用其他文件html
- 节点:'最佳实践'使用其他js文件的js文件
- 使用CloudFront和AmazonS3,或者其他CDN,我可以将所有类似的请求发送到一个静态文件中
- 先在Angular中加载配置文件,然后再加载其他文件
- 如何忽略node.js中其他文件或组件所需的文件
- Firefox扩展开发:如何在内容脚本中创建一个全局函数,以便其他加载的脚本文件可以访问它
- 如何使用其他 JavaScript 文件中的新类访问我的 createjs 导出的 js 文件
- 是否可以在其他文件中获取 AJAX 成功变量的值
- 使用其他javascript文件nodejs和express发送和获取数据 socket.io
- 如何将timbre.js缓冲区导出为.wav或任何其他音频文件格式
- 如何设置观察程序将文件复制到同一文件夹中的其他文件
- Meteor-如何从其他JS文件中调用外部类方法
- NodeJS-从其他文件导入函数,并像以前一样使用
- Typescript从其他ts文件扩展类
- 放在哪里;很多“;数据的数组/文件/其他地方,在node.JS上的JS中