【问题标题】:Fatal errors when building Knockout.js构建 Knockout.js 时出现致命错误
【发布时间】:2013-12-03 01:22:28
【问题描述】:

在 DigitalOcean 上运行 全新 Ubuntu 13.10 x64 实例。每次我尝试使用 npm/grunt 构建 Knockout.js 时,都会收到以下错误:

Running "clean" task

Running "checktrailingspaces:main" (checktrailingspaces) task

Running "build:debug" (build) task

Running "build:min" (build) task
Compiling...Fatal error: spawn ENOENT

奇怪的是,致命错误似乎是随机的。它始终是以下三个之一:

Fatal error: spawn ENOENT
Fatal error: spawn EPIPE
Fatal error: spawn ECONNRESET

我可以在 Mac OS X 以及 Linode 上的 Ubuntu 13.10 x64 实例以及家用计算机上的 Ubuntu 13.10 x64 上成功构建所有内容。我在不同的主机上启动了几个 Ubuntu 13.10 实例,并且只能在 DigitalOcean 上重现它。

我认为 DigitalOcean 的 Ubuntu 映像有些古怪,但还不能确定。我可能缺少一些必备包,但我阅读了所有文档并确保满足 Node/npm/grunt 的所有要求。

我已联系 DigitalOcean 并获得了一些很好的支持。一名员工设法重现了我的错误,但没有找到解决方案。

非常感谢任何帮助。

编辑:我的问题在下面得到解决,并且与 DigitalOcean 的图像完全无关

【问题讨论】:

    标签: node.js ubuntu knockout.js gruntjs npm


    【解决方案1】:

    Fatal error: spawn ENOENT 表示 node.js 中的 child_process.spawn 找不到您尝试生成的二进制文件。

    很可能你有一些依赖库需要安装在你的 OSX 机器上而不是 Ubuntu 机器上。

    查看您的build 任务以查看它试图生成的位置和内容。使用 grunt --stack 运行 grunt 应该会有所帮助。

    【讨论】:

    • 感谢您的帮助!您的建议使我意识到我的机器上没有安装 Clojure。安装后,我成功地构建了 Knockout。我的输出Fatal error: Object true has no method 'replace' 仍然有错误,但至少构建过程成功完成。我应该能够调试最后一个问题。
    • 好收获。我在尝试运行我的应用程序时忘记安装 graphicsmagick。该错误是不可调试的。我现在开始为我的应用添加非节点依赖检查!
    猜你喜欢
    • 2018-07-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-07
    • 2016-08-02
    • 1970-01-01
    • 1970-01-01
    • 2011-06-15
    相关资源
    最近更新 更多