Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Programmatically install a npm package, providing --save-dev flag

It's not very well documented, but you can use npm as a Node.js module and call commands in the code.

I want to capture user input for what packages are required and installing them this way and also save them to the package with the --save-dev flag. I've tried to no avail to get this up and running in code, with it installing but can't find a way to get it to save to the package file.

Is this even possible, or would it have be done another way. Alternate methods are welcome and appreciated.

var npm = require("npm")

npm.load({}, function (er) {
  if (er) return handlError(er)

  npm.commands.install(["titlecase"], function (err, data) {
    if (err) return console.error(err)
  })

})
like image 910
Tristan Ashley Avatar asked Feb 08 '23 15:02

Tristan Ashley


1 Answers

It is possible, flags need to be passed to npm.load():

var npm = require('npm');

npm.load({ 'save-dev': true }, function (err) {
    if (err) console.log(err);

    npm.commands.install(['lodash'], function (err, data) {
        if (err) return console.error(err)
    });
});

You have the list of flags and their type here.

like image 67
Shanoor Avatar answered Feb 11 '23 00:02

Shanoor