Git Product home page Git Product logo

Comments (5)

curist avatar curist commented on June 25, 2024 1

as far as I know, yes, bowerrc can config where we want our packages installed, but Bower installs the whole package.
say, bower install underscore, we will get 31 files, but what we really need is only underscore.js.
and that's where this little plugin comes in handy

from grunt-bower.

phated avatar phated commented on June 25, 2024

Makes sense, but maybe this should be renamed, as bower is relatively easy to implement as grunt tasks and this task doesn't expose any of the API.

from grunt-bower.

curist avatar curist commented on June 25, 2024

After a quick reevaluation, I can't really see which/why Bower's API to expose might be useful.
Bower's commands are for one shot thing, excute, and done, I don't think any of the commands will be suitable in a grunt automated task.

But that's only my opinion, would you mind to come up a reason or two which/why Bower's API could be useful if it's exposed?

I'd admit that, this task could be misleading for what it actually does. If there are any better use case for a task named grunt-bower, changing this task's name sure be a good idea.

from grunt-bower.

phated avatar phated commented on June 25, 2024

Yeoman and a tool I am working on Grunt-Enyo expose bower through their CLI and both do it through a grunt task. Also, I believe that being able to call grunt.task.run() inside of other tasks to kick off a bower task is better than shelling out or having to implement the API each time it is needed.

from grunt-bower.

curist avatar curist commented on June 25, 2024
  // bower command wrapper
  function bower_wrapper(cmd, done) {
    // pull in the bower command module
    var command = bower.commands[cmd];

    // run
    command.line(process.argv)
      .on('error', grunt.fatal.bind(grunt.fail))
      .on('data', grunt.log.writeln.bind(grunt.log))
      .on('end', function(){
        done();
      });
  }

  // register bower commands as grunt tasks
  Object.keys(bower.commands).forEach(function(cmd) {
    var task_name = 'bower:' + cmd
      , task_desc = 'wrapped bower ' + cmd + 'command.';

    grunt.registerTask(task_name, task_desc, function() {
      var done = this.async();
      bower_wrapper(cmd, done);
    });
  });

Modified from Yeoman's bower task, Bower's commands wrapped as Grunt tasks, with < 30 LOC.

It may be convenient to have these API when working on a framework like Yeoman and Grunt-Enyo, but, just look around other grunt tasks, I don't think this is the way a grunt task should be.

Sure I can plug-in the above codes, but it just doesn't feel right.

from grunt-bower.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.