一尘不染

如何在浏览器中要求CommonJS模块?

node.js

在浏览器中将CommonJS模块作为客户端javascript加载的最佳方法是什么?

CommonJS模块将其功能放在module.exports命名空间中,通常包含require(pathToModule)在服务器端脚本中。在客户端上加载它们的方式不同(需要替换需求,需要考虑异步性等)

我发现了模块加载器和其他解决方案:Browserify,RequireJS,yabble等,或者简单地更改模块的方法。您认为最佳方法是什么?为什么?


阅读 277

收藏
2020-07-07

共1个答案

一尘不染

过去,我已经广泛使用了requirejs(2010年在BBC
iPlayer
上实现),并且效果很好。它可以处理CommonJS模块,但是需要一个额外的包装器,我觉得很烦。如果还要在node.js中使用这些模块,则还需要在服务器端使用requirejs,我不喜欢这样做,因为它不是惯用的node.js
JavaScript。

我已经使用webmakebrowserify在过去一年中的几个项目。最初,编译步骤使我望而却步,但是今年已经广泛使用了它,我可以说这不是问题。

Browserify包含监视功能,效果很好。Webmake可以连接到观察者(例如watchr),或者您可以使用webmake-
middleware
模块,该模块可以用作express或connect应用程序的一部分。这样做的好处是,仅在您实际请求时才编译JavaScript,而不是在每次保存时都编译JavaScript。
Connect使创建服务器(也是静态的)变得很简单,因此,如果要开发不带后端的前端,则可以创建一个小型的静态node.js服务器来提供文件。

优点:无需构建脚本,因为您始终可以处理已构建的代码。

2020-07-07