【发布时间】:2014-03-24 13:03:52
【问题描述】:
例如,您正在 Backbone 或其他任何东西上构建一个项目,并且您需要按特定顺序加载脚本,例如underscore.js需要在backbone.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,而我的source/index.html 中的脚本顺序无关紧要,它会查看目录中的文件。
那么有人对此有什么想法吗?
我最好的办法是用 1、2、3 重命名供应商脚本,以给它们正确的顺序,但我不确定我是否喜欢这样。
随着我了解更多,我发现 Browserify 是一个很好的解决方案,一开始可能会很痛苦,但它很棒。
【问题讨论】:
-
我可能会提到现在我正在使用 browserify。它有自己的小学习曲线IMO。一开始我很挣扎,但 gulp browserify 是一个很酷的方法!让你的代码模块化!您在 shim 中处理订单,因此在使用 browserify 时不需要连接。
-
想为您的解决方案或链接提供更多详细信息?
-
kroltech.com/2013/12/… 这是一个样板项目的链接,它真正帮助我开始进行良好的项目管理。在学习了所有这些之后,我可以更好地管理我的项目。他在 github 上有这个项目,你可以看到他是如何使用 browserify 的。 Youtube 总是有帮助,当然来源本身总是被低估github.com/substack/node-browserify#usage
-
基本上,这个想法是能够在前端使用带有
require的npm 语法,因为当然,如果您在服务器端使用过npm,您会看到如何需要模块,但browserify 允许您要在客户端代码上执行此操作,请记住要开始它需要一些修补,但它主要位于 package.json 中,如果您想与 gulp.js 或 grunt.js 一起使用。如果你安装 gulp/grunt browserify 包,你可以运行gulp/grunt browserify并将你的脚本变成一个主脚本,这是一个轻微的学习曲线,但值得 IMO。 -
谢谢!实际上,我遇到了很棒的文章 medium.com/@dickeyxxx/… 提出了一个很好的观点,即对于
Angular模块,您并不真正需要browserify,其中简单的连接有效且顺序无关紧要:)
标签: javascript gulp