Dependencies 模块的浏览器或服务器版本

Dependencies 模块的浏览器或服务器版本,dependencies,requirejs,shared,amd,Dependencies,Requirejs,Shared,Amd,使用requirejs和javascript模块,我想在服务器和浏览器之间共享代码,有四种情况 1/仅适用于服务器的模块 define([], function() { if(typeof window != 'undefined') return null; // only for server //module code }) 2/仅适用于浏览器的模块 define([], function() { if(typeof window == 'undefined') ret

使用requirejs和javascript模块,我想在服务器和浏览器之间共享代码,有四种情况

1/仅适用于服务器的模块

define([], function() {
   if(typeof window != 'undefined') return null; // only for server
   //module code
})
2/仅适用于浏览器的模块

define([], function() {
   if(typeof window == 'undefined') return null; // only for browser
   //module code
})
3/模块共享

define([], function() {
   //module code
})
4/具有不同代码的服务器/浏览器模块

define(['require'], function(require) {
   if(typeof window == 'undefined') // server version
   {
      return require('nodejs module');
   }

   // browser version
})
我想要解决的更好的方法是包括浏览器的模块代码,现在我必须通过浏览器版本的全部代码。Nodejs需要同步,它可以工作。但在浏览器中,我必须使用

define(['require'], function(require) {
   if(typeof window == 'undefined') // server version
   {
      return require('nodejs_module');
   }

   require(['module_for_browser'], function(module_for_browser) {
      return module_for_browser;
   })
}
但我不能退

大多数库都有相同的代码来管理这两个内部检查窗口,但有些库没有。现在我想为服务器使用相同的eventemitter api,并要求“事件”。eventemitter和浏览器使用此兼容版本