0

我遇到了一个晦涩的错误 ENOENT。这是输出。

converting SVG to a PNG

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: spawn ENOENT
    at errnoException (child_process.js:980:11)
    at Process.ChildProcess._handle.onexit (child_process.js:771:34)

这是代码。检查 print 语句,它似乎发生在调用child.spawn.

child = require 'child_process'

svgToPNG = (svg, reply, log) ->
  # set up a child process to call convert svg: png:-
  log "converting SVG to a PNG"
  convert = child.spawn 'convert', ['svg:', 'png:-']
  convert.stderr.on 'data', (data) ->
    log data.toString()
    convert.stdout.end data
    return reply "error occurred"
  # create buffer that output will be piped into
  res = ""
  # pipe this process' stdout into res
  convert.stdout.pipe res
  # pipe svg into the process and close its input, startin the process
  convert.stdin.end svg
  # call reply with the res as content
  log "OK done converting to a PNG, replying"
  reply res

convert从命令行调用工作得很好。我不确定为什么会失败。

4

1 回答 1

0

当您键入convertshell 时,shell通过在环境变量convert中搜索目录来定位可执行文件的完整路径。不这样做。因此,要么使用绝对路径,要么使用程序,它将像交互式 shell 一样搜索 PATH。如果您使用,那将成为您的命令,成为参数 1,然后转换的其余参数。PATHchild_process.spawnconvert/usr/bin/env/usr/bin/envconvert

于 2013-10-03T21:52:28.967 回答