如何修复错误:在 Windows 10 中生成 npm ENOENT



我正在尝试创建一个 CLI 来自动克隆我创建的 vuex-store-starter 模板。在安装时,它显示基于错误的错误:生成 npm ENOENT

任何帮助都将非常受欢迎。

#! /usr/bin/env node
const {spawn} = require('child_process');

const name = process.argv[2];
if (!name || name.match(/[<>:"/\|?*x00-x1F]/)) {
  return console.log(`
  Invalid directory name.
  Usage: <vuex-store-starter-cli> <repo-name>  
`);
}
const URL = 'https://github.com/ChrisMichaelPerezSantiago/vuex-store-starter.git';
f('git', ['clone', URL, name])
  .then(() => {
    return f('rm', ['-rf', `${name}/.git`]);
  }).then(() => {
    console.log('Installing dependencies...');
    return f('npm', ['install'], {
      cwd: process.cwd() + '/' + name
    });
  }).then(() => {
    console.log('Done! 🏁');
    console.log('');
    console.log('cd', name);
    console.log('npm run start');
    console.log('👑For more information check the package.json')
  });
function f(command, args, options = undefined) {
  const spawned = spawn(command, args, options);
  return new Promise((resolve) => {
    spawned.stdout.on('data', (data) => {
      console.log(data.toString());
    });
    spawned.stderr.on('data', (data) => {
      console.error(data.toString());
    });
    spawned.on('close', () => {
      resolve();
    });
  });
}

我遇到的错误输出

Cloning into 'vuex-store-starter-cli'...
Installing dependencies...
events.js:174
      throw er; // Unhandled 'error' event
      ^
Error: spawn npm ENOENT
    at Process.ChildProcess._handle.onexit (internal/child_process.js:240:19)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)
Emitted 'error' event at:
    at Process.ChildProcess._handle.onexit (internal/child_process.js:246:12)
    at onErrorNT (internal/child_process.js:415:16)
    at process._tickCallback (internal/process/next_tick.js:63:19)

我通过添加以下内容来纠正问题

const npm = which.sync('npm');

并更改以下内容

'npm', ['install'] npm, ['install']

最新更新