我一直在研究如何在NodeJS和浏览器应用程序中使用NodeJS要求(显然在NodeJS应用程序中)和RequireJS用于Web浏览器环境中应用各种模块概念。
然后我意识到一些模块可能对客户端和服务器应用程序都有用,因此可以重用。
如何开发模块以使它们兼容这两种环境?
一个是同步的,一个是异步的。我的第一个想法是利用异步语法,然后为NodeJS定义一个自定义模块,它只是同步调用异步回调。但是,如果没有首先使用NodeJS同步回调,RequireJS仿真器将如何包含在跨环境模块中?
我一直在研究如何在NodeJS和浏览器应用程序中使用NodeJS要求(显然在NodeJS应用程序中)和RequireJS用于Web浏览器环境中应用各种模块概念。
然后我意识到一些模块可能对客户端和服务器应用程序都有用,因此可以重用。
如何开发模块以使它们兼容这两种环境?
一个是同步的,一个是异步的。我的第一个想法是利用异步语法,然后为NodeJS定义一个自定义模块,它只是同步调用异步回调。但是,如果没有首先使用NodeJS同步回调,RequireJS仿真器将如何包含在跨环境模块中?
看这篇文章: 弥合Node.js和浏览器之间的模块差距
看这篇文章: 弥合Node.js和浏览器之间的模块差距
另见一套样板 https://github.com/umdjs/umd
关于异步与同步 - 对于Node中的define(),通常只使用传递给定义的工厂函数的同步执行。这就是在Node中运行时requirejs的工作原理。
该 http://uRequire.org 项目填补了空白 AMD & nodejs / commonJs 格式。你可以写入(或两者),并执行/部署到 这两个中的任何一个 或者a standalone.js
。