微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angularjs – bower传递依赖性未添加角度

我不确定它是如何工作的,所以请原谅我粗略的问题.
我正在玩角度,并注意到凉亭有一些不受欢迎的行为.我用自耕农创建了我的应用程序,并使用bower进行依赖管理. index.html文件中有一节应由bower管理:

<!-- build:js scripts/vendor.js -->
<!-- bower:js -->
<script src="bower_components/jquery/jquery.js"></script>
<script src="bower_components/angular/angular.js"></script>
<script src="bower_components/bootstrap/dist/js/bootstrap.js"></script>
<script src="bower_components/angular-resource/angular-resource.js"></script>
<script src="bower_components/angular-cookies/angular-cookies.js"></script>
<script src="bower_components/angular-sanitize/angular-sanitize.js"></script>
<script src="bower_components/angular-route/angular-route.js"></script>
<script src="bower_components/angular-ui-router/release/angular-ui-router.js"></script>
<script src="bower_components/select2/select2.js"></script>
<script src="bower_components/angular-ui-select2/src/select2.js"></script>
<script src="bower_components/angular-ui-tinymce/src/tinymce.js"></script>
<!-- endbower -->

我注意到传递依赖关系没有添加到此列表中.例如,角度ui-tinymce取决于tinymce.尽管tinymce作为传递依赖安装,但它不包含在index.html文件中,所以我必须自己包含它.但这打败了管理脚本的实践包括用bower(即如果我卸载angular-tinymce,bower将删除它的脚本,但我手动添加的tinymce脚本将在那里挂起.

有可能告诉bower在index.html文件添加传递依赖项吗?或者这是一个坏主意,应该手工管理?
社区中最好的做法是什么?

解决方法

这实际上是一个名为 grunt-bower-install的Grunt任务,它正在插入HTML.它在您的Gruntfile.js中配置为bower-install,然后可能作为grunt serve的一部分运行.它也可以直接调用:grunt bower-install.

只要您在bower.json中安装并保存了Bower组件,它及其依赖项将按照与其关系匹配的顺序注入到您的HTML中.但是,唯一不行的是,当Bower组件未在其自己的bower.json文件中指定主属性时.

所以,要清楚,你有一个bower.json列出你的应用程序的依赖项.此外,您在大多数时间列出的每个依赖项都有自己的bower.json,它列出了它的依赖项(如果有的话),还有一个main属性,它告诉像grunt-bower-install这样的文件要注入到HTML中.只要其中一个依赖项无法遵循指定main的约定,grunt-bower-install就会失去它的魔力.

在angular-ui-tinymce的情况下,它确实是list tinymce as a dependency,但是tinymce没有配置bower.json文件.因此,没有bower.json带有一个主要属性来告诉grunt-bower-install注入要注入的文件out of all these.

我能看到的最佳选择是手动写出< script>像你说的那样标记自己,并在你决定不使用它时手动删除它.在最糟糕的情况下,当grunt-bower-install不起作用时,它仍然只是我们这些年来习惯的网络开发.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐