javascript - 如何在开发和生产中构建 JavaScript 应用程序

标签 javascript architecture

我正在构建我的第一个(非意大利面条式的)大型 JavaScript 应用程序。同时介绍RequireJS和其他 JavaScript 依赖管理框架可以更轻松地拆分文件,我不清楚如何将大型代码库推向生产。我想要的是一种聚合和缩小/丑化我的 JavaScript 用于生产的方法,使用类似 Ready.js 的东西和 UglifyJS .或者其他一些可行的方法。

在生产环境中拥有大型 JavaScript 应用的开发人员如何处理他们在开发和生产环境中的结构?

例如,我可以在开发中使用 RequireJS,然后使用 Ready/Uglify 来聚合/缩小。但是这样我的代码就会有毫无意义的 require() 分散在各处。我确信有更好的方法。

我也对在这些文件中包含 jQuery 感到困惑。我是否应该将每个单独的 jQuery 文件(例如使用 jQuery 的 Backbone View )包装在它们自己单独的 $(document).ready(function(){...}) 中?这看起来很不干。

最佳答案

您可以使用 RequireJS optimizer .即使在压缩应用程序中,require 也不是毫无意义的,因为您总是必须获得对模块的引用。优化器文档还说,它不会包含已加载变量的模块,例如

var mods = someCondition ? ['a', 'b'], ['c', 'd'];
require(mods);

我认为 RequireJS 应该等到 DOM 准备好并且所有模块都已加载,这样您就不需要包装每个文件。

也就是说,我最喜欢的包管理器仍然是StealJS .它可以在生产构建中踢出不必要的调用,并且模块始终封装在一个闭包中,该闭包获取传递的 jQuery 对象并等待 DOM 准备就绪并且所有脚本都已加载。不幸的是,它还不兼容 CommonJS 模块规范。

关于javascript - 如何在开发和生产中构建 JavaScript 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8605548/

相关文章:

javascript - 当使用scaleX()显示/隐藏元素时,如何检查元素的可见性?

android - R.java 背后的概念是什么?

java - 如何审计 Java EE 项目?

javascript - meteor : react 加入 "publish-with-relations"-package

javascript - 单击按钮时如何更改图像

java - 适配器和访问者模式是否适合我的用例?

c - 系统调用不同的硬件架构?

caching - 高并发环境下NoSQL+分布式缓存的数据一致性

javascript - 大 json 字符串下载失败-Angular JS

javascript - 一旦错误检查破坏表单就不会提交