你是否有如下的烦恼:
1、很多公用的又简单的代码,项目的每个成员都会一段代码,比如说秒数改为倒计时,或者http请求
2、每次调用另外一个公用库的代码都要引用对方的TS,虽然vscode会自动帮忙引入,但是脚本多的地方,顶部会有一大堆导入项
3、库的交叉引用导致引用的对象为undefine
4、新建项目时,明明是很常的库,却要一个个去别的项目中拷贝过来。
如果有,那是不是希望把自己的库作为一个完全独立并且公用的库?类似cocos的库一样,作为插件加入项目。换项目时,只需要拷贝两个文件 即可,xxx.d.ts ,xxx.js
下面,就分享一个将ts公用代码打包成一个插件库,全项目公用。只需要替换一个js即可。
直接上链接:FrameDemo: 开源TS压缩为js库的框架
重点强调: nodejs版本不能超过12,最好是10.x,否则会导致库报错
1、clone后,直接npm i,下载相对应的库
2、重点就是gulpfile.js里,有两个打包方案,default和debug,分别对应命令为gulp,gulp debug
3、gulp 就是打包压缩版,将所有代码打包为1行
4、gulp debug就是普通打包, 只是把所有代码打成一个js,并不会对其压缩,代码易读,但是包体大
5、gulpfile.js的19行就是入口,指向的Creator/Global.ts,这里就是框架的核心代码,大家都能懂
6、随便编写了一个common类,导入在Global.ts中。
7、Global.d.ts是提示文件,跟creator.d.ts一样,这个文件需要手写,也可以机器编译(提示文件不完整,也没有中文注释,建议还是手写)
8、写好后调用gulp命令打包,会生成一个sdk.min.js文件,将Global.d.ts和这个文件导入到项目中(Global.d.ts为项目根目录,sdk.min.js在assets下的任意目录),并将sdk.min.js设定为插件
9、在任意地方调用,默认代码中的Global.Common.secondFormat(86400)即可。不需要导入任何类。而且所有 项目api全部统一
10、比较麻烦的一点就是需要手写注释Global.d.ts,不过这个一劳永逸。
最后谢谢大家顶帖