bower overrides 配置

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 文件 :

bower overrides 配置_第1张图片

你会发现里面并没有配置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"
      ]
    }
  }

指出我们需要自动注入的文件。

你可能感兴趣的:(前端)