我正在构建我的第一个(非意大利面条式的)大型 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/