【问题标题】:node child_process spawn gives error code -2 ENEONTnode child_process spawn 给出错误代码 -2 ENEONT
【发布时间】:2022-12-07 01:43:40
【问题描述】:

我正在尝试制作一个 npx 命令,我可以在其中运行子命令

我的 package.json bin:

"bin": {
    "malzahar": "./src/bin/malzahar.js"
},

这是我的malzahar.js代码:

#! /usr/bin/env node

import cp from 'child_process'
import yargs from 'yargs'

const argv = yargs(process.argv).argv
const command = argv._[2]

if (command == 'dev') {
    // this works
    cp.exec('babel-node ./node_modules/malzahar/src/entries/server.js')

    // this gives error -2 ENOENT
    cp.spawn('babel-node ./node_modules/malzahar/src/entries/server.js')
        .on('error', function (error) {
            console.log(error)
        })
}

server.js 文件只是启动一个基本的快速服务器:

import express from 'express'

const app = express()
const port = 3000

app.get('/', (req, res) => {
    res.send('Hello World!')
})

app.listen(port, () => {
    console.log(`Example app listening on port ${port}`)
})

我可以在使用exec时让它工作,但它不会在终端输出Example app listening on port 3000

我读到它可能使用 spawn 工作,但是当我使用 spawn 时它给我错误代码 -2 ENEONT:

Error: spawn babel-node ./node_modules/malzahar/src/entries/server.js ENOENT
    at ChildProcess._handle.onexit (node:internal/child_process:285:19)
    at onErrorNT (node:internal/child_process:483:16)
    at process.processTicksAndRejections (node:internal/process/task_queues:82:21) {
  errno: -2,
  code: 'ENOENT',
  syscall: 'spawn babel-node ./node_modules/malzahar/src/entries/server.js',
  path: 'babel-node ./node_modules/malzahar/src/entries/server.js',
  spawnargs: []
}

【问题讨论】:

    标签: javascript node.js


    【解决方案1】:

    显然exec也是一个倾听者

    我用它来工作:

        const child = cp.exec('babel-node ./node_modules/malzahar/src/entries/server.js')
    
        child.stdout.on('data', function (data) {
            console.log(data)
        })
    

    【讨论】:

      猜你喜欢
      • 2016-09-01
      • 2021-11-27
      • 2013-12-07
      • 1970-01-01
      • 2019-11-01
      • 2020-01-01
      • 2021-10-31
      • 2021-04-05
      • 2012-07-27
      相关资源
      最近更新 更多