是否有可能使JavaScript模块兼容NodeJS和RequireJS?

我一直在研究如何在NodeJS和浏览器应用程序中使用NodeJS require(显然是在NodeJS应用程序中)和RequireJS在Web浏览器环境中应用各种模块概念。

然后,我发现一些模块可能对客户端和服务器应用程序都有用,因此可以重复使用。

如何开发模块以便与这两种环境兼容?

一个是同步的,一个是asynchronous的。 我的第一个想法是利用asynchronous语法,然后为NodeJS定义一个自定义模块,它只是同步调用asynchronouscallback。 但是,如果没有先使用NodeJS同步callback,RequireJS仿真器将如何被包含到跨环境模块中呢?

看到这篇文章: 桥接Node.js和浏览器之间的模块差距

请参阅https://github.com/umdjs/umd上的一组样板

关于asynchronous与同步 – 对于Node中的define(),通常只使用传递给定义的工厂函数的同步执行。 这就是requirejs在Node中运行时的工作方式。

http://uRequire.org项目填补了AMDnodejs / commonJs格式的空白。 U可以写入(或两者),并执行/部署到这两个standalone.js 任何一个。