nodejs 和 commonjs 的现状?

在下菜鸟,最近在了解js模块化

我有个癖好,对未知的东西,除了学习代码,还喜欢挖掘下起源和发展过程

于是,在了解 commonjs 时,各路文章中常常看到两句话:

1、2009年 Mozilla 的某位大牛发明了 commonjs
2、2013年 notejs 的某位大牛宣布,commonjs 过时了,nodejs已经放弃 commonjs

于是,疑问来了:

既然已经放弃,为什么直到今天(2019)我查询到的所有介绍 commonjs 的文章,依然会介绍 commonjs 是 nodejs 所采用的模块规范方案?不是已经放弃了吗?

求前辈们指点。

阅读 4.7k
2 个回答

Node的模块系统是“基于”commonjs的,但是并不是完全遵守commonjs。它只是借鉴了commonjs规范,将其引入到自身之中,然后就不再跟随commonjs的发展而发展了。你可以认为Node中的commonjs只是一个适应于它自己的“变种”commonjs而已。

所以说Node并没有完全废弃commonjs啊,这么说的人纯粹在误导。

不过Node确实在计划引入ES的模块系统,只是目前仅处在实验阶段:参考Node API文档

至于真正引入ES模块系统之后是否会废弃现有的commonjs模块系统,还是未知数。我倾向于认为不会废弃,毕竟也要考虑向下兼容啊,况且两种模块系统之间并不冲突,完全是可以两者并存的。

cmd了解一下

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