Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – Grunt任务中的节点JS – child_process spawn(‘npm install’)导致ENOENT错误大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在创作一个Grunt任务有些困难.我正在尝试执行npm install,然后执行bower install,然后执行grunt hub目标(触发多个子项目的构建命令).

我遇到的问题在于child_process.如果我在我的grunt任务中运行以下命令,并且当前已注释掉的npm install spawn命令,则会出现生成ENOENT错误

var path = require('path'),projectPath = path.resolve(process.cwd(),this.data.activity );

        grunt.log.debug('project path computed as: ',projectPath);
        process.chdir( projectPath );

        console.log('current dir is: ',process.cwd());
        console.log('EVN is: ',process.env);

        var spawnProcess = spawn('ls');
        // var spawnProcess = spawn('npm install');

        spawnProcess.stdout.on('data',function (data) {
            console.log('' + data);
        });

        spawnProcess.stderr.on('data',function(data) {

            console.log('something went wrong installing deps for ' + path + '.  Error: ',data);
        });

        spawnProcess.on('close',function (exitCodE) {

            console.log( 'ls has finished with Exit Code: ' + exitCodE);
        });

当前代码(使用ls而不是npm install)会导致:

running "install:projects" (install) task[D] Task source: /Users/zedd45/proj/Gruntfile.js
Verifying property install.projects exists in config...oK
File: [no files]
[D] project path computed as:  /Users/zedd45/proj/activity/web/client
current dir is:  /Users/zedd45/proj/activity/web/client
EVN (abbreviated) is:  { 
   TERM_PROGRAM: 'iTerm.app',SHelL: '/bin/bash',PWD: '/Users/zedd45/proj',...
  OLDPWD: '/Users/zedd45/proj/activity/web/client',_: '/usr/local/bin/grunt' }

GruntFile.js
bower.json
package.json
this_is_the_directory_you_are_looking_for.txt
ls has finished with Exit Code: 0

但如果我将’ls’改为’npm install’,我会改为
“致命错误:产生ENOENT

紧接着ENV打印.

我已经为该目录尝试了chmod 777,这似乎没有帮助.

我也尝试过:

// var spawnProcess = spawn('npm install',{'cwd': projectPath});

// var spawnProcess = spawn('npm install',[],{'cwd': projectPath});

前者导致

后者仍会导致ENOENT错误.

任何帮助确切地说这个ENOENT错误可能会有很大帮助;谷歌搜索它和child process API docs都没有取得多大成功

解决方法

再次仔细检查child_process.spawn上的文档.第一个参数应该只是要运行的命令,第二个参数应该是参数:

var npm = spawn('npm',['install'],{ cwd: projectPath });

大佬总结

以上是大佬教程为你收集整理的node.js – Grunt任务中的节点JS – child_process spawn(‘npm install’)导致ENOENT错误全部内容,希望文章能够帮你解决node.js – Grunt任务中的节点JS – child_process spawn(‘npm install’)导致ENOENT错误所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。