【发布时间】:2014-07-18 20:34:44
【问题描述】:
我有很多同事和朋友正在使用现有的棕地、凌乱的 javascript 应用程序,他们希望开始过渡到某种 js 模块系统。我过去曾试图通过向他们展示如何重构为 requirejs 来帮助他们,但我开始认为这是一种不好的方法。
问题通常是他们的全局代码的性质与 AMD 的异步性质相冲突,尽管我相信 AMD 方法,但他们比我在进行模块加载的“正确”方式。
与此同时,Browserify 消除了异步考虑并且更直接,但增加了整个构建步骤。对于不使用捆绑或任何类型的构建过程(或只是 Visual Studio 中的默认构建过程)的人来说,这又是太多的开销。
所以我真正想要的是一个简单的模块系统,它允许人们使用define 和require 的东西。这是使事情正常工作的半步,它们可以将它们的依赖项包含在常规脚本标记中,并手动将它们定义到模块系统中。 I even wrote such a system 因为...嘿,这真的很容易。
今天有人向我指出,实际上应该可以只使用 Browserify 的客户端部分来实现这一点。我同意。但是,我真的无法在任何地方找到任何文档,也无法单独找到 Browserify 客户端的东西。
【问题讨论】:
-
我怀疑这是不可能的......你必须在每次页面加载时在客户端运行整个 browserify 进程,这通常是秒级的。 Browserify 非常神奇,但我相信您需要服务器端捆绑才能使其工作......
-
@urban_racoons 但是browserify生成的包不是基本上每个js文件都被
define(...)包围并连接在一起吗?为什么你不能从你的应用程序中手动调用定义?或者它做了更多的事情?我不太确定,因为——正如我所暗示的——我完全属于 AMD 阵营。
标签: client-side browserify javascript