你可以在没有捆绑的情况下使用browserify吗?

时间:2014-07-18 20:34:44

标签: client-side browserify javascript

我有很多同事和朋友,他们想要开始转换到某种js模块系统,现有的棕色字段,混乱的javascript应用程序。我曾经试图通过向他们展示如何重构requirejs来帮助他们,但我开始认为这是一个糟糕的方法。

问题通常在于它们的全局 - 全部代码的性质与AMD的异步性质相冲突,并且尽管我相信AMD的方法,但它们比我的讲座更受关注。 "适当"模块加载的方法。

Browserify同时删除了异步考虑因素,更简单,但在整个构建步骤中添加。对于那些没有使用捆绑或任何类型的构建过程(或者只是visual studio中的默认过程)的人来说,这又是一个过多的开销。

所以我真正想要的是一个简单的模块系统,允许人们definerequire。这是使事情正常工作的一半步骤,它们可以包含与常规脚本标记的依赖关系,并手动将它们定义到模块系统中。 I even wrote such a system因为......嘿,这真的很容易。

今天有人向我指出应该可以实际使用Browserify的客户端部分来实现这一目标。我同意。但是,我无法在任何地方找到任何文档,也无法单独查找Browserify客户端内容。

3 个答案:

答案 0 :(得分:1)

坐下来解剖一个已构建的浏览器文件后,我得出结论,不,我想做的事情是不可能的。

一方面,browserify似乎没有公开define或甚至是require关键字。另一方面,它对组合模块进行了一些小的重写,这在运行时很难实现。

答案 1 :(得分:0)

我遇到了一个与Browserify配合良好的动态模块加载器。您可以使用它进行开发,以在客户端全局公开“require”。效果很好。

https://github.com/manvalls/drq

答案 2 :(得分:-2)

您的问题的解决方案可能是:

https://github.com/LarsBV/browser-node-loader

由于浏览器中的各种sourcemap错误,我写了这个,太多/替代, gulp / browserify / watchify中的配置方式。

它有一个构建步骤,但只有在有新的依赖项时才需要运行。

我不推荐这种方法用于制作,但它在开发方面要容易得多。

这是一个非常新的,除了最新的chrome,firefox之外没有经过任何调整 在生成的脚本中,我认为它甚至可以在ie6中工作。