The config is obtained by merging multiple configurations by this order of importance:
- CLI arguments via
--config
- Environment variables
- Environment variables with
config
key of package.json - Local .bowerrc located in the current working directory
- All .bowerrc files upwards the directory tree
.bowerrc
file located in user’s home folder (~).bowerrc
file located in the global folder (/)
Example of CLI arguments:
--config.endpoint-parser=<parser>
--config.storage.packages=<packages>
Example of valid environment variables:
bower_https_proxy
is evaluated ashttps-proxy
bower_storage__packages
is evaluated asstorage.packages
The same keys can be used under config
key in package.json
Available configuration variables, in .bowerrc.
format:
{
"cwd": "~/my-project",
"directory": "bower_components",
"registry": "https://bower.herokuapp.com",
"shorthand-resolver": "git://github.com/{{owner}}/{{package}}.git",
"proxy": "http://proxy.local",
"https-proxy": "https://proxy.local",
"ca": "/var/certificate.pem",
"color": true,
"timeout": 60000,
"strict-ssl": true,
"storage": {
"packages" : "~/.bower/packages",
"registry" : "~/.bower/registry",
"links" : "~/.bower/links"
},
"interactive": true,
"resolvers": [
"mercurial-bower-resolver"
],
"shallowCloneHosts": [
"myGitHost.example.com"
],
"scripts": {
"preinstall": "",
"postinstall": "",
"preuninstall": ""
},
"ignoredDependencies": [
"jquery"
]
}
String
Current working directory - the directory from which bower should run. All relative paths will be calculated according to this setting. It should be used only via programmatic API or CLI arguments. Do not put it into .bowerrc
.
"cwd": "~/my-project"
String
The path in which installed components should be saved. If not specified this defaults to bower_components
.
"directory": "bower_components"
Object
or String
The registry config. Can be an object or a string. If a string is used, all the property values below will have its value. Defaults to the bower registry URL.
If your organization wishes to maintain a private registry, you may change the values below.
"registry": "https://bower.herokuapp.com"
Array
of String
or String
An array of URLs pointing to read-only Bower registries. A string means only one. When looking into the registry for an endpoint, Bower will query these registries by the specified order.
"registry": {
"search": [
"http://localhost:8000",
"https://bower.herokuapp.com"
]
}
String
The URL to use when registering packages.
"registry": {
"register": "http://localhost:8000"
}
String
The URL to use when publishing packages.
"registry": {
"publish": "http://localhost:8000"
}
String
Define a custom template for shorthand package names.
Defaults to {% raw %}git://github.com/{{owner}}/{{package}}.git
{% endraw %}
The shorthand-resolver
key provides support for defining a custom template
which Bower uses when constructing a URL for a given shorthand. For example, if
a shorthand of twitter/flight
or twitter/flight#v1.0.0
is specified in the
package's manifest dependencies, the following data can be referenced from
within the shorthand-resolver
template:
owner: "twitter"
package: "flight"
shorthand: "twitter/flight"
"shorthand-resolver": "git://example.com/{{owner}}/components/{{package}}.git"
"shorthand-resolver": "git://example.com/{{shorthand}}.git"
String
The proxy to use for http requests.
"proxy":"http://<host>:<port>"
String
The proxy to use for https requests.
"https-proxy":"http://<host>:<port>"
String
Sets the User-Agent for each request made.
Defaults to: node/<process.version> <process.platform> <process.arch>
"user-agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2228.0 Safari/537.36"
Number
The timeout to be used when making requests in milliseconds, defaults to
60000
ms.
"timeout": 40000
Boolean
Whether or not to do SSL key validation when making requests via https.
"strict-ssl": false
Object
or String
The CA certificates to be used, defaults to null. This is similar to the registry key, specifying each CA to use for each registry endpoint.
The Certificate Authority signing certificate that is trusted for SSL connections to the registry. Set to null to only allow "known" registrars, or to a specific CA cert to trust only that specific signing authority.
"ca": "/etc/ssl/cert.pem"
Boolean
Enable or disable use of colors in the CLI output. Defaults to true.
"color": true
Object
Where to store persistent data, such as cache, needed by bower. Defaults to
paths that suit the OS/platform. Valid keys are packages
, registry
, links
.
"storage": {
"packages" : "~/.bower/packages",
"registry" : "~/.bower/registry",
"links" : "~/.bower/links"
}
String
Where to store temporary files and folders. Defaults to the system temporary directory suffixed with /bower.
"tmp": "~/.bower/tmp"
Boolean
Makes bower interactive, prompting whenever necessary. Defaults to null
which
means auto
.
"interactive": true
Array
of String
List of Pluggable Resolvers to use for locating and fetching packages.
"resolvers": [
"mercurial-bower-resolver"
]
Array
of String
Bower's default behavior is to not use shallow cloning, since some Git hosts (e.g. older versions of GitHub Enterprise) fail to provide a response when asked to do a shallow clone (with --depth 1
). This list allows to whitelist hosts that are known to support shallow cloning.
"shallowCloneHosts": [
"myGitHost.example.com"
]
Bower provides 3 separate hooks that can be used to trigger other automated tools during Bower usage. Importantly, these hooks are intended to allow external tools to help wire up the newly installed components into the parent project and other similar tasks. These hooks are not intended to provide a post-installation build step for component authors. As such, the configuration for these hooks is provided in the .bowerrc
file in the parent project's directory.
In .bowerrc
do:
{
"scripts": {
"preinstall": "<your command here>",
"postinstall": "<your command here>",
"preuninstall": "<your command here>"
}
}
The value of each script hook may contain a % character. When your script is called, the % will be replaced with a space-separated list of components being installed or uninstalled.
Your script will also include an environment variable BOWER_PID
containing the PID of the parent Bower process that triggered the script. This can be used to verify that a preinstall
and postinstall
steps are part of the same Bower process.
Array
Bower will ignore these dependencies when resolving packages.
"ignoredDependencies": [
"jquery", "angular"
]