main-bower-files
Advanced tools
Comparing version 1.0.0 to 1.0.1
@@ -32,4 +32,8 @@ var fs = require("fs"); | ||
if(fs.existsSync(opts.paths.bowerrc)){ | ||
opts.paths.bowerDirectory = path.dirname(opts.paths.bowerrc); | ||
opts.paths.bowerDirectory = path.join(opts.paths.bowerDirectory, "/", (JSON.parse(fs.readFileSync(opts.paths.bowerrc))).directory); | ||
var bowerrcJson = JSON.parse(fs.readFileSync(opts.paths.bowerrc)); | ||
if (bowerrcJson && bowerrcJson.directory) { | ||
opts.paths.bowerDirectory = path.dirname(opts.paths.bowerrc); | ||
opts.paths.bowerDirectory = path.join(opts.paths.bowerDirectory, "/", bowerrcJson.directory); | ||
} | ||
} | ||
@@ -36,0 +40,0 @@ |
{ | ||
"name": "main-bower-files", | ||
"version": "1.0.0", | ||
"version": "1.0.1", | ||
"description": "Get main files from your installed bower packages.", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
185
README.md
main-bower-files | ||
================ | ||
![status](https://secure.travis-ci.org/ck86/main-bower-files.png?branch=master) | ||
## Usage | ||
```javascript | ||
var mainBowerFiles = require('main-bower-files'); | ||
var files = mainBowerFiles(/* options */); | ||
``` | ||
This will read your `bower.json`, iterate through your dependencies and returns an array of filesdefined in the main property of the packages `bower.json`. | ||
You can override the behavior if you add an `overrides` property to your own `bower.json`. See options: | ||
### Usage with gulp | ||
```javascript | ||
var gulp = require('gulp'); | ||
var mainBowerFiles = require('main-bower-files'); | ||
gulp.task('TASKNAME', function() { | ||
return gulp.src(mainBowerFiles(/* options */)) | ||
.pipe(/* what you want to do with the files */) | ||
}); | ||
``` | ||
#### You've got a flat folder/file structure after `.pipe(gulp.dest('my/dest/path'))`? | ||
`mainBowerFiles` returns an array of files where each file is a relative path without any globs (** or *). gulp requires globs in these paths to apply the base path. Because of this, you always have to tell gulp your bower base path (the path to the bower_components directory) explicitly. | ||
Here is an example: | ||
```javascript | ||
var gulp = require('gulp'); | ||
var mainBowerFiles = require('main-bower-files'); | ||
gulp.task('TASKNAME', function() { | ||
return gulp.src(mainBowerFiles(/* options */), { base: 'path/to/bower_components' }) | ||
.pipe(/* what you want to do with the files */) | ||
}); | ||
``` | ||
Now you should get something like `my/dest/path/jquery/jquery.js` if you have jquery installed. | ||
### Usage with grunt | ||
**_\* COMING SOON \*_** | ||
## Options | ||
### Overrides Options | ||
These options can be set directly in your `bower.json` file, e.g.: | ||
```json | ||
{ | ||
"name": "your-package-name", | ||
"dependencies": { | ||
"BOWER-PACKAGE": "*" | ||
}, | ||
"overrides": { | ||
"BOWER-PACKAGE": { | ||
// Here you can override the main files or ignoring this package, for more info see options | ||
} | ||
} | ||
} | ||
``` | ||
#### main | ||
Type: `String` or `Array` or `Object` | ||
You can specify which files should be selected. You can `gulp-bower-files` select files based on the `process.env.NODE_ENV` if you provide an `Object` with `keys` as the environment, e.g.: | ||
```json | ||
{ | ||
"overrides": { | ||
"BOWER-PACKAGE": { | ||
"main": { | ||
"development": "file.js", | ||
"production": "file.min.js", | ||
} | ||
} | ||
} | ||
} | ||
``` | ||
#### ignore | ||
Type: `Boolean` Default: `false` | ||
Set to `true` if you want to ignore this package. | ||
#### dependencies | ||
Type: `Object` | ||
You can override the dependencies of a package. Set to `null` to ignore the dependencies. | ||
### Common Options | ||
These options can be passed to this plugin, e.g: `mainBowerFiles(/* options*/)` | ||
#### debugging | ||
Type: `boolean` Default: `false` | ||
Set to `true` to enable debugging output. | ||
#### main | ||
Type: `String` or `Array` or `Object` Default: `null` | ||
You can specify for all packages a default main property which will be used if the package does not provide a main property. | ||
#### env | ||
Type: `String` Default: `process.env.NODE_ENV` | ||
If `process.env.NODE_ENV` is not set you can use this option. | ||
#### paths | ||
Type: `Object` or `String` | ||
You can specify the paths where the following bower specific files are located: | ||
`bower_components`, `.bowerrc` and `bower.json` | ||
For example: | ||
```javascript | ||
mainBowerFiles({ | ||
paths: { | ||
bowerDirectory: 'path/for/bower_components', | ||
bowerrc: 'path/for/.bowerrc', | ||
bowerJson: 'path/for/bower.json' | ||
} | ||
}) | ||
.pipe(gulp.dest('client/src/lib')); | ||
``` | ||
If a `String` is supplied instead, it will become the basepath for default paths. | ||
For example: | ||
```javascript | ||
mainBowerFiles({ paths: 'path/for/project' }); | ||
/* | ||
{ | ||
bowerDirectory: 'path/for/project/bower_components', | ||
bowerrc: 'path/for/project/.bowerrc', | ||
bowerJson: 'path/for/project/bower.json' | ||
} | ||
*/ | ||
``` | ||
#### checkExistence | ||
Type: `boolean` Default: `false` | ||
Set this to true if you want that the plugin checks every file for existence. | ||
If enabled and a file does not exists, the plugin will throw an exception. | ||
## LICENSE | ||
(MIT License) | ||
Copyright (c) 2013 Christopher Knötschke <cknoetschke@gmail.com> | ||
Permission is hereby granted, free of charge, to any person obtaining | ||
a copy of this software and associated documentation files (the | ||
"Software"), to deal in the Software without restriction, including | ||
without limitation the rights to use, copy, modify, merge, publish, | ||
distribute, sublicense, and/or sell copies of the Software, and to | ||
permit persons to whom the Software is furnished to do so, subject to | ||
the following conditions: | ||
The above copyright notice and this permission notice shall be | ||
included in all copies or substantial portions of the Software. | ||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, | ||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF | ||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND | ||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE | ||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION | ||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION | ||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. |
@@ -162,2 +162,13 @@ var mainBowerFiles = require("../"); | ||
}); | ||
}); | ||
it("should not throw an exception if bowerrc has no directory property defined", function() { | ||
var when = expect([]).fromConfig("/_empty.json", { | ||
paths: { | ||
bowerDirectory: __dirname + "/fixtures", | ||
bowerrc: __dirname + "/.bowerrc_without_directory" | ||
} | ||
}).when; | ||
when.should.not.throw(); | ||
}); | ||
}); |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
Major refactor
Supply chain riskPackage has recently undergone a major refactor. It may be unstable or indicate significant internal changes. Use caution when updating to versions that include significant changes.
Found 1 instance in 1 package
24002
56
519
188
0