我是做前端的,但是我不会用gulp,不会用webpack
所以呢?
有什么关系?
最近在搞一个框架,搞到头觉得还是需要有个打包工具,但是找了一大圈,发现居然没有人处理我遇到的问题
首先说一下我用了些什么东西好了
我知道es6出来很久了,大家都说这玩意儿是趋势,webpack+babel编译打包
但是我就是不喜欢,我写出来的代码没法调试运行,我就是觉得不爽
恩,chrome下可以调试运行
但是我们的项目需要支持IE,所以呢,我直接抛弃了ES6
用了ES5+AMD
所以AMD打包怎么办呢?
其实webpack到底还是用的amd,但是貌似还真没几个人用这个来打包amd模块,不过我们的项目也没这个必要,所以干脆不搞了
然后我们项目有几个问题
1.在amd中引用了css,打包的话,由于css被打包了,所以这部分引用需要去掉
2.在css中引用了图片,打包之后相对路径会有问题
3.在amd中引用了模板,我打算把模板也打包成一个模块,并且顺手把国际化做掉
那么我问了一下公司有经验的“前辈”,告诉我,“把图片编成base64直接插入到css文件中,不应该用amd来引用css,需要统一处理,有个模板工具,你看看能不能符合需求?”
所以,你确定你不是来搞笑的?
其实这里的工具我本来就打算自己写的,一两天,也就搞定了,定制程度非常高,以后修改也比较简单,绝对符合我们项目的需求。
当然打包之后的mini化我就不自己做了
所以我写了两个工具来处理这些问题
第一个工具处理css中的路径问题,可以将所有的相对路径都改成绝对路径,并且加上项目前缀。还可以反过来,将所有绝对路径都改成相对路径。在绝对路径前面加上项目前缀等功能。
第二个工具处理amd模块的打包问题,可以将所有的css引用剔除,调整所有的模板引用,并且将所有模板直接国际化。
花了两天的事件,完美~
当然两天不是全部做这件事,我还顺手研究了一下gulp插件怎么写,把我的工具改成了gulp插件,然后引入了gulp,修正了IE下不支持promise的的解决方式
最后我搞出来的东西就变成了,能打包,能调试,随便写
开发阶段直接用开发代码,发布阶段直接发布。发布阶段改一个参数即可直接调试。调试完成,改了代码之后执行一个命令即可发布最新代码。至于源码不安全的问题,你可以选择用拦截请求的方式来禁止访问,然后通过特殊参数在调试的时候允许访问;甚至可以把源码删了,然后在调试的时候重新部署一下就OK了
作为一个前端,一个需要大量定制 的系统,代码没法调试,是一个致命的缺陷,开发人员会被玩死的。。。
所以呢,技术这个东西,你觉得新的好,他觉得旧的好。新的是趋势,旧的很稳定。其实,适合自己的才是最好的。
接下来,我打算在node端开typescript,不需要考虑客户端调试的时候,代码随便怎么写都可以了
目前来说,node端组里只有我一个人在弄,随便推什么东西都不会有人阻止。就是有点闭门造车的感觉。。。有点害怕出门合不了辙
哦,对了,我看过es6,部分新特性是挺爽的。但是在浏览器支持以前。这些都只能停留在看看的基础上。在node端我也写过。效果不是很明显。
而且es6其实解决不了重构的问题。这个大概是为什么ng要上ts了,所以我打算把前端做起来,我也想上ts了
恩,我也不懂ts,,,
回头看看再来耍宝~~~
hiahiahia……