默认的yeoman角度应用程序与wiredep,concat和cdnify - 如何实际上cdnify'd?

Dou*_* T. 5 javascript cdn angularjs gruntjs yeoman

我有一个角度项目,我启动默认的自耕农设置.

通过查看构建过程的工作原理,我无法想象我的任何bower依赖项是如何自动cdnifyed以及cdnify任务的重点.

首先,yeoman用wiredep设置所有东西,它将我的bower依赖关系连接到index.html中的一个位置.看起来像:

<!-- build:js(app) scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/jquery/dist/jquery.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/json3/lib/json3.js"></script>
<!-- endbower -->
<!-- endbuild -->
Run Code Online (Sandbox Code Playgroud)

从Yeoman看我的Gruntfile,看起来如此

  1. Wiredep强制所有bower依赖项进入此块
  2. 然后将整个块编译成vendor.js

最后

  1. cdnify运行,识别任何免费脚本标签并尝试用cdn'd版本替换.

这对我来说似乎很愚蠢.但是在我开始攻击我的Gruntfile之前,我想确保我的理解是正确的.

我不能简单地在这个块之外简单地复制粘贴cdnify'd依赖项,因为wiredep只是将它们放回去.如果我这样做,index.html会包含jquery两次,例如.一次进入vendor.js,第二次来自cdn.

如果我想使用cdnify,那么我需要远离wiredep,并手动决定哪些依赖应该是cdnify'd,哪些不应该.

看来自己比这更聪明,我想确保我不是这里的傻瓜.这种设置是否有些矛盾/多余,这是真的吗?我错过了什么吗?

更新似乎将脚本放在此块之外会导致wiredep不将它们放在bower块中.但是,我找不到任何说明这是记录在案的行为的地方.

dee*_*eek 0

您可以转到已注册任务的 grunt 文件的底部,并从 grunt build 等任务中删除 CDNify 等内容。Grunt 下次将跳过该步骤。