4 个回答

研究react的时候也考虑过这个问题,首先可以先了解下这两种模块的机制。参考这里
要考虑的点:

  1. 目前Commonjs是nodejs(浏览器环境需要模块加载器)原生支持的,而es6需要借助babeljs来实现。意味着如果要实现自动编译上线(我司没有在线上安装node_modules做法)可能需要将babel之类的node_modules提交代码仓库,大概45M。

  2. 还有要考虑下你选择的react的组件库是基于es6还是Commonjs。如果你业务使用Commonjs规范,组件使用es6,这个就没法统一了。

  3. 考虑下团队对es6的熟悉程度,关系到代码质量和维护成本。

暂时就想到这些。

ES6的import和export可以随意使用,只是在webpack配置文件里面不推荐使用,因为目前有各种bug,如果你实在想用可以试试webpack-2分支

import/export是语言的一部分,将来扩展性可能好点

而且es6模块系统不能动态引入模块,没有require('/lib'+libName)这种写法,多少可以防止滥用。

如果有需要动态加载的依赖,就用DI吧

我的意见是如果你的 react 组件使用 ES6 规范书写,那么就贯彻 ES6 规范,react 官方推荐使用 es6 标准进行书写。
当然如果你们如果使用的是 es5 的方法写组件,那么可以用 commonJS 来书写。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题