编写在浏览器和node.js中运行的模块化ECMAScript
Writing modular ECMAScript that runs in browsers AND in node.js
我是Javascript和node.js中繁重工作的新手。我一直在用Web Audio Api编写一些客户端的东西,所有这些都是快速、肮脏/单片的实验,但现在我想做一些实际的项目。我不喜欢整个浏览器内测试,我听说很多人都使用node进行测试,所以我也想这样做,使用grunt进行自动化。这在一定程度上是为了让我可以将我的代码分解成许多漂亮的可测试的小块,然后这些小块可以收集成一两个大块并提供。
到目前为止,我只是将我的javascript拆分成多个文件,并在body标记的底部按顺序导入它。Obvs这适用于小型客户端项目,但不可扩展。
我更习惯的是导入机制,就像其他几乎所有语言一样,就像node.js一样。然而,浏览器不知道导出或模块。导出,一看到它就会弹出。
脑海中浮现出两个明显的解决方案,但对我来说都很臭…
1) Put exports=module.exports={};在每一页的首页。
2) 在一起编译所有文件时,查找并删除这些导出声明。
这两种方法都不是很好的解决方案。
对于在JS中制作模块化代码,有什么规范的解决方案/模式我应该知道吗?如果没有,有人有一个适度优雅的吗?如果做不到这一点,任何人都会有一个不太糟糕的!?我应该学习RequireJS吗?ES6模块能解决这个问题吗?如果能,我应该等待更好的支持吗?很抱歉一次问了这么多问题,JS生态系统既令人兴奋又令人困惑!
我一直很喜欢Kris Kowal等人在Q库中的表现——他在这段代码中的评论是无可挑剔的
https://github.com/kriskowal/q/blob/v1/q.js
相关文章:
- 聚合物是一个框架而不是一个库.如何模块化地使用web组件
- 使用Ampersand.js路由模块化应用程序
- Promise函数在.then之后未运行函数化
- 性能与模块化:将JS集成到PHP或单独的custom.JS中
- 将broccoliJS与当前使用requireJS的模块化主干应用程序结合使用,我想完全放弃requireJS
- 用于多个选项卡和模块化的knockoutjs设计模式
- 编写在浏览器和node.js中运行的模块化ECMAScript
- 模块化&重用使用ExtJS编写的代码
- 使用模块化CSS与Bootstrap 4和React
- 构建模块化谷歌地图应用程序
- 模块化模块?需要父模块中的部分
- 为什么模块化幂函数在 Python 和 Javascript 中对于大数字的工作方式不同
- 模块化与性能与性能与角度应用程序中的ng-include
- 将变量传递给 Javascript 模块化模式方法
- JavaScript模块化和依赖注入之间的区别
- 无法模块化AngularJS应用程序
- 模块化JS和原型继承
- 如何构建模块化的js承诺链
- jQuery命名空间声明和模块化方法
- 第一个jquery项目-在函数中使用处理程序来模块化它们