bower 是一个常用的包管理工具,用起来和npm很相似,但是两者又有一些区别,可以参考 —— What is the difference between Bower and npm。这里不说bower本身,而想说一下bower的overrides配置。
override 本身是覆盖的意思,实际上,它的作用也是用来覆盖依赖包原有的配置。如果是手动引入 bower 依赖包的文件的话,这个配置没什么用,但是当你使用如wiredep这种自动注入工具时,overrides就很有用了。
比如我们用bower安装了 ace-builds 包:
bower install ace-builds --save
然后使用wiredep自动注入bower依赖:
$ node > require('wiredep')({ src: 'index.html' });
(具体命令参见wiredep文档)
你会发现 ace-builds 相关文件一个也没有注入到 index.html 中,这是为什么呢?
打开 ace-builds 的依赖包的 bower.json 文件 :
你会发现里面并没有配置main
选项,而 wiredep 的自动注入其实就是根据每个依赖包中的main
选项来决定注入哪些文件的。没有main
,wiredep自然没法自动注入了。
这时 overrides 选项就派上用场了,我们可以这么定义:
"overrides": { "ace-builds": { "main": [ "src-min-noconflict/ace.js", "src-min-noconflict/mode-yaml.js", "src-min-noconflict/mode-javascript.js", "src-min-noconflict/theme-github.js", "src-min-noconflict/ext-language_tools.js" ] } }
指出我们需要自动注入的文件。
以上是bower overrides的配置方法的详细内容。更多信息请关注PHP中文网其他相关文章!