bower 是一个常用的包管理工具,用起来和npm很相似,但是两者又有一些区别,可以参考 —— what is the difference between bower and npm。这里不说bower本身,而想说一下bower的overrides配置。
何谓override
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 文件 :
适合初学的标准三层架构,采用ajax,页面布局div+css符合w3c,用vs自带的sqlserver,免配置sqlserver,使用方便,里面共有5个项目,点击最外层的.sln直接可运行。网站采用asp.net 用户角色配置(membership,UserRoles),用户角色、权限可在asp.net配置里修改,注册,登陆均采用asp.net登陆控件,网站根据用户角色自定义sitemap,基本上

你会发现里面并没有配置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"
] } }指出我们需要自动注入的文件。









