robjam
robjam

Reputation: 989

Gulp wiredep error on jquery-ui

I use wiredep to get all vendor components and put them in a temporary folder, but when I add jquery-ui, wiredep fails.

gulpfile.js

gulp.task('build:vendor', ['cleanVendor'], function () {
    var files = require('wiredep')();
    var stream = gulp.src(files.js);
    // ...other code here
});

the error output:

C:\Dev\node_modules\wiredep\wiredep.js:30
    ('on-error', opts.onError || function(err) { throw new Error(err); })
                                                       ^
Error: Error: jquery-ui is not installed. Try running `bower install` or remove
the component from your bower.json file.
    at C:\Dev\node_modules\wiredep\wiredep.js:30:56
    at C:\Dev\node_modules\wiredep\lib\detect-dependencis.js:149:29
    at forOwn (C:\Dev\node_modules\wiredep\node_modules\lodash\dist\lodash.js:2106:15)
    at Function.forEach (C:\Dev\node_modules\wiredep\node_modules\lodash\dist\lodash.js:3303:9)
    at detectDependencies (C:\Dev\node_modules\wiredep\lib\detect-dependencies.js:34:7)
    at wiredep (C:\Dev\node_modules\wiredep\wiredep.js:70:39)
    at Object.<anonymous> (C:\Dev\gulp\prep.js:16:33)
    at Module._compile (module.js:460:26)
    at Object.Module._extensions..js (module.js:478:10)
    at Module.load (module.js:355:32)

bower.json:

{
  "name": "project",
  "version": "0.0.1",
  "dependencies": {
    "angular-messages": "^1.4.2",
    "angular-aria": "^1.4.2",
    "jquery": "^1.11.3",
    "angular": "^1.4.2",
    "jquery-ui": "1.11.4"
  }
}

I tried adding an override to the bower.json file, but the result was the same.

The strange thing is that this works in node shell. other possibly useful information:

Upvotes: 1

Views: 1022

Answers (1)

robjam
robjam

Reputation: 989

Found my mistake,

gulp.task('build:vendor', ['cleanVendor'], function () {
    var files = require('wiredep')();
    var stream = gulp.src(files.js);
    // ...other code here
});

should be:

gulp.task('build:vendor', ['cleanVendor'], function () {
    var files = require('wiredep')({ directory: 'bowerDirectoryHere'});
    var stream = gulp.src(files.js);
    // ...other code here
});

the default (I'm not sure where it is pulled from) was one level too high. The strange part is that it only fails on jquery-ui and not angular or others.

Upvotes: 1

Related Questions