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

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

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

拯救无知G answered 9 years, 2 months ago

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

Ayukawa answered 9 years, 2 months ago

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

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

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

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

暂时就想到这些。

logos answered 9 years, 2 months ago

Your Answer