这是我的看法(我是 YUI 开发人员):
您的问题似乎有两个角度。
一个是关于模块打包和重用格式(CommonJS),另一个是关于客户端 JS 库的一般概念及其对服务器端开发的适用性。
我不是真正适合回答封装角度的人,除了说 YUI 3 从一开始就固有地使用正式的模块系统来封装和交付代码,并且它已经融入了它的设计。提供适配器或构建步骤以将这些模块交付/翻译到 CommonJS 是我们一直在讨论的事情。YUI 社区中参与该领域的其他人可能会在此处添加更多有价值的信息。
在第二个角度,我可以告诉你,服务器是 YUI 的一流目标环境。它在服务器上和在客户端上一样适用。当然,有一组模块只在一个环境或另一个环境中有意义,但是库的很大一部分,可以在栅栏的两侧使用,并且有意识地构建它来做到这一点。
例如,YUI 中的大部分模块提供了基础设施和实用程序,这些基础设施和实用程序同样适用于服务器上的应用程序开发(自定义事件、属性、基础、国际、把手、IO、YQL、DataType、DataSchema、 JSON等...)。
这确实是从一开始的设计目标——它是一个网络(因为没有更好的术语——我指的是 JS/HTML/CSS 技术堆栈)应用程序开发库,而不仅仅是一个 DOM 抽象库,或者只是一个小部件图书馆。
Dav Glass 有一篇博客文章,其中包含一些关于该主题的精彩内容:
http://www.yuiblog.com/blog/2011/11/07/rocking-yui-on-node-js-and-mobile/
您还可以查看 3.5.0 PR:
http://stage.yuilibrary.com/yui/docs/yui/nodejs.html