使用 Gulp 按顺序连接脚本
例如,您正在 Backbone 或其他任何东西上构建一个项目,并且您需要按特定顺序加载脚本,例如underscore.js
需要在 backbone.js
之前加载.
如何让它连接脚本以使它们井井有条?
//JS concat,剥离调试和缩小gulp.task('脚本', function() {gulp.src(['./source/js/*.js', './source/js/**/*.js']).pipe(concat('script.js')).pipe(stripDebug()).pipe(丑化()).pipe(gulp.dest('./build/js/'));});
我的 source/index.html
中的脚本顺序正确,但由于文件是按字母顺序组织的,gulp 将在 之后连接
,和我的underscore.js
>backbone.jssource/index.html
里面的脚本顺序无关,看目录下的文件.
那么有人对此有什么想法吗?
我最好的办法是用 1
、2
、3
重命名供应商脚本,以给它们正确的顺序,但我是不知道我喜不喜欢这个.
随着我了解的更多,我发现 Browserify 是一个很好的解决方案,一开始可能会很痛苦,但它很棒.
解决方案我最近在构建我的 AngularJS 应用程序时遇到了与 Grunt 类似的问题.这是我发布的一个问题.p>
我最终做的是在 grunt 配置中按顺序显式列出文件.配置文件将如下所示:
<代码>['/path/to/app.js','/path/to/mymodule/mymodule.js','/path/to/mymodule/mymodule/*.js']
Grunt 能够找出哪些文件是重复的并且不包含它们.同样的技术也适用于 Gulp.
Say, for example, you are building a project on Backbone or whatever and you need to load scripts in a certain order, e.g. underscore.js
needs to be loaded before backbone.js
.
How do I get it to concat the scripts so that they’re in order?
// JS concat, strip debugging and minify
gulp.task('scripts', function() {
gulp.src(['./source/js/*.js', './source/js/**/*.js'])
.pipe(concat('script.js'))
.pipe(stripDebug())
.pipe(uglify())
.pipe(gulp.dest('./build/js/'));
});
I have the right order of scripts in my source/index.html
, but since files are organized by alphabetic order, gulp will concat underscore.js
after backbone.js
, and the order of the scripts in my source/index.html
does not matter, it looks at the files in the directory.
So does anyone have an idea on this?
Best idea I have is to rename the vendor scripts with 1
, 2
, 3
to give them the proper order, but I am not sure if I like this.
As I learned more I found Browserify is a great solution, it can be a pain at first but it’s great.
解决方案I had a similar problem recently with Grunt when building my AngularJS app. Here's a question I posted.
What I ended up doing is to explicitly list the files in order in the grunt config. The config file will then look like this:
[
'/path/to/app.js',
'/path/to/mymodule/mymodule.js',
'/path/to/mymodule/mymodule/*.js'
]
Grunt is able to figure out which files are duplicates and not include them. The same technique will work with Gulp as well.
相关文章