![Introducing Enhanced Alert Actions and Triage Functionality](https://cdn.sanity.io/images/cgdhsj6q/production/fe71306d515f85de6139b46745ea7180362324f0-2530x946.png?w=800&fit=max&auto=format)
Product
Introducing Enhanced Alert Actions and Triage Functionality
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.
bower-requirejs
Advanced tools
Readme
Automagically wire-up installed Bower components into your RequireJS config
$ npm install --save bower-requirejs
./node_modules/.bin/bower-requirejs -c path/to/config.js -e underscore -e jquery
-h, --help # Print options and usage'
-v, --version # Print the version number'
-c, --config # Path to your RequireJS config file'
-e, --exclude # Name of a dependency to be excluded from the process'
-b, --base-url # Path which all dependencies will be relative to'
-t, --transitive # Process transitive dependencies'
Bower >=v1.3.1 includes hooks for preinstall
, postinstall
and preuninstall
actions. To run grunt-bower-requirejs after every bower install, add a scripts
block to your .bowerrc
.
{
"scripts": {
"postinstall": "bower-requirejs -c path/to/config.js"
}
}
If you do not already have a config.js
file at the location specified by the --config
option then one will be generated for you. A basic config.js
file looks like this:
requirejs.config({
shim: {},
paths: {}
});
You still need to create a path for your js files. This tool will only create paths for third party libraries specified in bower.json
.
requirejs.config({
shim: {},
paths: {
myComponent: 'js/myComponent.js' // make sure to add your components!
}
});
The tool does not overwrite the config file, it just adds additional paths to it. So paths you add will be preserved. Keep in mind that if you change or remove one of your Bower dependencies after you've run the task, that path will still exist in the config file and you'll need to manually remove it.
If the transitive option is set to true
, then transitive dependencies will be also added to the require config.
For example, say we explicitly have an entry in our bower config for module myTotallyCoolModule
, which depends on jQuery
and underscore
. If the transitive option is set to true
, there will be config entries for myTotallyCoolModule
, jQuery
, and underscore
. Otherwise, if the transitive option is set to false
, there will only be a config entry for myTotallyCoolModule
.
Each transitive dependency is only included once, even if the dependency is used multiple times.
Although RequireJS does not provide a bower.json
file, a path to require.js
will still be created in your rjsConfig
file. The path's name will be requirejs
. If you are optimizing your scripts with r.js
you can use this path to make sure RequireJS is included in your bundle.
If a dependency's moduleType
is set to node
in bower.json
it will be treated as a CommonJS Package.
The following bower.json
file:
{
"name": "node-module-type-stub",
"version": "0.0.1",
"moduleType": ["node"],
"main": "myMain.js"
}
Will generate this entry in your config.js
file:
require.config({
shim: {},
packages: [
{
name: 'node-module-type-stub',
main: 'myMain.js',
location: 'bower_components/node-module-type-stub'
}
],
paths: {}
});
By default, the task will set the package location
to the root directory of the dependency. If the dependency includes a location
property in its bower.json
, then the location will be a combination of the root directory and the location dir.
For example, a bower.json like this:
{
"name": "node-module-type-stub",
"version": "0.0.1",
"moduleType": ["node"],
"main": "myMain.js",
"location": "src"
}
Will generate this entry in your config.js
file:
require.config({
shim: {},
packages: [
{
name: 'node-module-type-stub',
main: 'myMain.js',
location: 'bower_components/node-module-type-stub/src'
}
],
paths: {}
});
options
— An options object containing optional config, baseUrl, and exclude options. The config
option specifies an output file to which the generated require.js config will be written. If a require.js config file already exists at this location, the generated config will be merged into this file.callback
— A callback to execute when the task is finished. This callback will receive an object that contains the require.js configuration generated from bower components. Note that this includes only config elements representing bower components.You can use bower-requirejs
directly in your app if you prefer to not rely on the binary.
var bowerRequireJS = require('bower-requirejs');
var options = {
config: 'scripts/config.js',
exclude: ['underscore', 'jquery'],
transitive: true
};
bowerRequireJS(options, function (rjsConfigFromBower) {
// all done!
});
pkg
— A package object returned from bower list
name
— The name of the packagebaseUrl
— A baseUrl to use when generating the pathIf you would like to just receive a paths object you can do so with the parse
module. If your package does not contain a bower.json
file, or if the bower.json
does not contain a main
attribute then the parse module will try to use the primary
module to find a primary, top-level js file.
var bower = require('bower');
var _ = require('lodash');
var parse = require('bower-requirejs/lib/parse');
var baseUrl = './';
bower.commands.list()
.on('end', function (data) {
_.forOwn(data.dependencies, function (pkg, name) {
if (name == 'jquery') {
var pathObj = parse(pkg, name, baseUrl);
}
});
});
name
— The package namecanonicalDir
— The canonicalDir for the package, either returned by bower list
or passed in manuallyopts
— Use the opts.extraSearchDirs
to specify other dirs to search, relative to the canonicalDir. By default this is ['dist']
.If you just want to look for the js file in a bower component's top-level directory or 'dist' directory you can use the primary
module. The primary
module will exclude gruntfiles and min.js
files. It will also check if package.json
specifies a main
js file.
var primary = require('bower-requirejs/lib/primary');
var name = 'backbone';
var dep = { canonicalDir: './bower_components/backbone' };
var primaryJS = primary(name, dep);
// returns backbone.js
bowerDependencyGraph
— A bower dependency graph, as returned by a call to bower.commands.list
options
— An object containing baseUrl
, exclude
, and transitive
options, as described above.This module can be used to generate a requireJs config elements from bower components.
var buildConfig = require('bower-requirejs/lib/build-config');
bower.commands.list({})
.on('end', function (dependencyGraph) {
var configElementsFromBower = buildConfig(dependencyGraph, {
baseUrl : '/some/base/url',
exclude: ['underscore', 'jquery'],
transitive: true
});
});
Sindre Sorhus (creator) | Rob Dodson (maintainer) |
BSD license and copyright Google
FAQs
Automagically wire-up installed Bower components into your RequireJS config
The npm package bower-requirejs receives a total of 288 weekly downloads. As such, bower-requirejs popularity was classified as not popular.
We found that bower-requirejs demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Socket now supports four distinct alert actions instead of the previous two, and alert triaging allows users to override the actions taken for all individual alerts.
Security News
Polyfill.io has been serving malware for months via its CDN, after the project's open source maintainer sold the service to a company based in China.
Security News
OpenSSF is warning open source maintainers to stay vigilant against reputation farming on GitHub, where users artificially inflate their status by manipulating interactions on closed issues and PRs.