在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的图片有关。
答案 0 :(得分:3)
Fatal error: spawn ENOENT
表示node.js中的child_process.spawn无法找到您尝试生成的二进制文件。
您可能在OSX计算机上安装了一些依赖项,但在Ubuntu计算机上却没有。
查看您的build
任务,了解它正在尝试生成的位置和内容。使用grunt --stack
运行grunt应该会有所帮助。