我正在用 Node.js 编写一个 Web 服务器,并且我希望它(除其他外)向包含我的客户端 SDK 的客户端提供一个 JavaScript 文件。SDK 基本上是一个对象,它提供了客户端可以使用的许多功能。
我需要从各种来源构建 SDK:
- 第三方库,例如 AngularJS
- 自定义代码,存储在
.js
服务器上的静态文件中 - 自定义代码,在运行时在内存中动态创建
为了能够轻松测试我的自定义代码(#2),并且能够与服务器端共享此代码,如果我能根据 CommonJS 编写它会很棒。
我在为客户端捆绑东西方面没有太多经验,但我知道 UglifyJS 和 Browserify。
如果它只是连接一些文件(也许是缩小它们),我知道如何处理 UglifyJS。如果只是提供一些与 CommonJS 兼容的东西,我也知道如何使用 Browserify。我没有得到的是它们的组合,以及需求#3 - 动态生成的代码。
这实质上意味着我不能为此使用 Grunt,但一切都需要在运行时完成(请不要讨论我为什么要这样做)。
所以……我有点迷路了。有人可以帮我澄清一下吗?我如何将所有这些部分放在一起,以便最终得到一个可以发送给客户并且客户可以使用的可交付成果?
基本上,客户端最终应该得到的是一些全局对象,例如$
,angular
和我自己的custom
对象,但所有这些都只加载一个文件。
我怎么能这样做?
PS:我不需要将结果放在服务器上的磁盘上,如果它是一个纯内存解决方案,对我来说非常好(甚至是首选,因为那时我不需要对文件系统的写访问权) .