Yii2框架用了N年了,每次最受不了的就是他需要下载一堆jquery/inputmask/punycode/yii2-pjax等基础的jQuery插件。想想啊,如果你只是拿Yii2来写Rest,这样的东西,有啥用?
而且比较可恨的是,你为了用这个。你还得全局安全fxp的插件,然后,你还得准备一个github的auth token(虽然 在使用的时候,会提示怎么创建),但就是麻烦!
然后在网上找啊找,找啊找,找到这个插件:yidas/yii2-composer-bower-skip,网址为:https://github.com/yidas/yii2-composer-bower-skip,有一些教程,仔细看了一下,原来他就是引用了一个composer的provide。
查看了一下composer的provide的说明:
- 此程序包提供了一个其他程序包列表。 这对于通用接口非常有用, 一个包可能依赖于一些虚拟的logger包,任何实现这个logger接口的库都可以在provide中列出来。
好吧,意思就是欺骗其他composer组件说,我已经有了,你不用下载了。。。
然而,在yii 2.0.12后,即使你将这个玩意放在 yiisoft/yii2 前,fxp还是会下载bower/* ,所以你还得将fxp删除:composer globao remove fxp/composer-asset-plugin。再试着用composer update -vvv,会看到确实不下载了。不过这带来的另一个问题就是,服务器上的一些其他Yii的项目,因为有可能使用了yii的asset组件,所以fxp还真不能干掉。
最后:我只能暂时放弃了这个方案,不过我还是参考了这个项目,将他的composer中的内容放到了自己的composer.json文件里。毕竟,如果是在一台新的机器上,就不用担心了。因为我已经很久不用Yii AssetManager了。现在都是blade + vue (虽然 用法也比较恶心,但不比Yii自带的assetmanager差)