Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate modules from amd to ES6 import/export #9

Merged
merged 10 commits into from
Oct 10, 2017
Merged

Migrate modules from amd to ES6 import/export #9

merged 10 commits into from
Oct 10, 2017

Conversation

fuzhenn
Copy link
Contributor

@fuzhenn fuzhenn commented Sep 16, 2017

Hi, @pissang

这是一个很大很大的pull request, 可能会让你吓一跳, 非常不好意思 😹

这个PR的具体起因请参考mrdoob/three.js#9310

qtek采用amd来组织模块, 但目前ES6已成为事实的模块标准, 改用ES6模块的益处这里就不再赘述了.

qtek改用ES6模块后, 有几个很明显的好处:

  • rollup打包的源代码去掉了很多架子代码, 很友好易读 (debug时的心情很重要)
  • js包体积显著减小 (qtek.js减少了200多K)
  • 打包时能直接导入essl, 无需再把essl转成js
  • 发布包除原有umd格式外, 增加ES模块格式的qtek.es.js, 方便rollup/webpack 3等新一代打包工具食用
  • 以后如果有需要把qtek改用ES6实现, 会方便一些

目前改造已经基本完成, 我对比了原qtek把tests跑了一遍, 暂时没有发现什么问题.

我做的修改:

  • 将所有的amd代码改为了 import/export
  • 换用rollup 0.49打包
  • 删除amd2commonjs.js
  • 删除原有的amd格式的包声明文件src/qtek.js
  • 修改了build/genentry.js生成ES6模块声明文件src/qtek.js
  • dist中改为生成umd格式的qtek.js和ES模块格式的qtek.es.js

最后, 因为变化很大, 这个PR谨供探讨, 即使不合并也没什么关系 😄 (当然很希望能起点作用)

Happy coding!

@fuzhenn
Copy link
Contributor Author

fuzhenn commented Oct 10, 2017

已经把新的改动都合并好, 测试看上去也没啥问题.
因对ts不熟悉, 生成的d.ts没有做验证

@pissang pissang merged commit 525c191 into pissang:master Oct 10, 2017
@fuzhenn fuzhenn deleted the rollup branch October 10, 2017 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants