liudong
2023-05-29 340f156319b863525e50e900c58e59b86ecb3d5e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
'use strict';
 
module.exports = function (grunt) {
  grunt.registerMultiTask('npm-command', 'Run npm commands from Grunt.', function () {
    var done = this.async();
 
    var options = this.options({
      cwd: '',
      cmd: 'install',
      args: [],
 
      failOnError: true
    });
 
    var child = {
      cmd: 'npm',
      args: [options.cmd].concat(options.args),
      opts: {
        cwd: options.cwd,
        stdio: 'inherit'
      }
    };
 
    grunt.verbose.writeflags(child, 'Spawning child process');
 
    grunt.util.spawn(child, function (err) {
      return done(options.failOnError ? err : null);
    });
  });
};