致命错误:生成 ENOENT

Posted

技术标签:

【中文标题】致命错误:生成 ENOENT【英文标题】:Fatal error: spawn ENOENT 【发布时间】:2014-09-10 12:37:31 【问题描述】:

Gruntfile.js 内容:

grunt.initConfig(
        connect: 
            server: 
                options: 
                    port: 5005,
                    base: '.'
                
            
        ,
        qunit: 
            all: ['test/*.html']
        
    );

grunt.loadNpmTasks('grunt-contrib-connect');
    grunt.loadNpmTasks('grunt-contrib-qunit');

grunt.registerTask('test', ['connect', 'qunit']);

Test/index.html 文件内容:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>
            Sitejson - QUnit Test Runner
        </title>
        <link rel="stylesheet" href="libs/qunit/qunit.css" type="text/css">
    </head>
    <body>
        <div id="qunit"></div>
        <div id="qunit-fixture"></div>

        <script src="libs/qunit/qunit.js" type="text/javascript"></script>
        <script src="testcases/tests.js" type="text/javascript"></script>
    </body>
</html>

tests.js 内容:

QUnit.test("hello test", function(assert) 
    assert.ok(1 == "1", "Passed!");
);

我正在使用 Ubuntu / Linux 环境。我还安装了 Phantomjs 并且工作正常。每当我尝试运行 grunt test 时,我都会收到一个致命错误:spawn ENOENT 错误。

虽然我尝试在浏览器上运行它,但它的 qunit 工作正常...

我无法确定是什么问题。我是否在这里缺少更多配置。

grunt test --debug 告诉我:

Running "connect:server" (connect) task
[D] Task source: /media/hegdeashwin/Storage-TB/qunittesting/node_modules/grunt-contrib-connect/tasks/connect.js
Started connect web server on http://0.0.0.0:5005

Running "qunit:all" (qunit) task
[D] Task source: /media/hegdeashwin/Storage-TB/qunittesting/node_modules/grunt-contrib-qunit/tasks/qunit.js
Testing test/index.html [D] ["/media/hegdeashwin/Storage-TB/qunittesting/node_modules/grunt-contrib-qunit/node_modules/grunt-lib-phantomjs/phantomjs/main.js","/tmp/1405775714604.2773","test/index.html","\"timeout\":5000,\"inject\":\"/media/hegdeashwin/Storage-TB/qunittesting/node_modules/grunt-contrib-qunit/phantomjs/bridge.js\",\"urls\":[],\"force\":false,\"console\":true,\"httpBase\":false"]
Fatal error: spawn EACCES

【问题讨论】:

【参考方案1】:

使用以下流程:

设置tmpdir环境变量:

setenv TMPDIR=~/tmp

重新运行grunt 任务

如果可行,请将以下内容添加到您的 .bashrc.profile 中永久设置:

export TMPDIR=~/tmp

参考文献

Troubleshooting · npm/npm Wiki

Secure Programs HowTo

Environment Variables

FAQ Troubleshooting

【讨论】:

以上是关于致命错误:生成 ENOENT的主要内容,如果未能解决你的问题,请参考以下文章

致命错误:生成 ENOENT

Laravel Artisan 事件:生成命令引发致命错误

以 Clover XML 格式生成代码覆盖率报告...致命错误:无法重新声明 preprocessGrammar()

使用 pyinstaller 生成的可执行文件遇到“致命的 python 错误:initfsencoding”

Nuxt 生成致命错误:在堆限制附近的无效标记压缩分配失败 - JavaScript 堆内存不足

PHPUnit CodeIgniter 生成夹具 PHP 致命错误:找不到类“PHPUnit_Framework_TestCase”