比如说,你正在主干网上构建一个项目,你需要按照一定的顺序加载脚本,例如,在backbone.js之前需要加载underscore.js个.

我怎样才能把脚本整理好呢?

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

在我的source/index.html中,我有正确的脚本顺序,但由于文件是按字母顺序组织的,gulp将在backbone.js之后的underscore.js处进行concat,而在我的source/index.html中,脚本的顺序无关紧要,它会查看目录中的文件.

有人对此有 idea 吗?

我最好的办法是将供应商脚本重命名为123,以给出正确的顺序,但我不确定我是否喜欢这样.

随着我了解更多,我发现Browserify是一个很好的解决方案,一开始可能会很痛苦,但它很好.

推荐答案

我最近在构建AngularJS应用程序时遇到了与Grunt类似的问题.这是我贴的a question张.

我最后做的是在grunt配置中按顺序显式列出文件.配置文件将如下所示:

[
  '/path/to/app.js',
  '/path/to/mymodule/mymodule.js',
  '/path/to/mymodule/mymodule/*.js'
]

Gunt能够找出哪些文件是重复的,并且不包括它们.同样的技术也适用于Gulp.

Javascript相关问答推荐

使用jsPDF添加Image JPEG将p5.js草图画布下载为PDF

为什么我的useDispatch挂钩在这里设置不正确?

Vue.js使用特定索引值的数据更新html

ChartJS:分组堆叠条形图渲染错误

以逗号分隔的列表来数组并填充收件箱列表

如果没有尾随斜线,托管在收件箱中的React/Vite将无法工作

创建私有JS出口

React对话框模式在用户单击预期按钮之前出现

JQuery. show()工作,但. hide()不工作

D3 Scale在v6中工作,但在v7中不工作

显示图—如何在图例项上添加删除线效果?

如何从网站www.example.com获取表与Cheerio谷歌应用程序脚本

如何将Cookie从服务器发送到用户浏览器

如何控制Reaction路由加载器中的错误状态?

我正在建立一个基于文本的游戏在react ,我是从JS转换.我怎样才能使变量变呢?

在Reaction中的handleSubmit按钮内,useSelector值仍然为空

如何在箭头函数中引入or子句?

try 使用PM2在AWS ubuntu服务器上运行 node 进程时出错

将多个文本框中的输出合并到一个文本框中

使用CEPRESS截取时,cy.Wait()在等待5000ms的第一个路由请求时超时