为什么grunt-php路由器会忽略我的基本路径?

时间:2015-09-24 00:50:18

标签: php gruntjs

我们的同事机器上有一个Gruntfile.js。

php: {
    dist: {
        options: {
            port: 8888,
            useAvailablePort: true,
            keepalive: true,
            router: '_router.php',
            base: 'src' //dev mode
        }
    }
},

......它在他的机器上工作正常但不是我的机器。 _router.php位于顶级目录中。在开发部署期间,运行grunt dev会导致我的控制台无错误。

PHP 5.5.27 Development Server started at Wed Sep 23 17:31:54 2015
Listening on http://127.0.0.1:8888
Document root is /Users/toszter/Engineering/moo/sources/local/web/src
Press Ctrl-C to quit.
[Wed Sep 23 17:39:33 2015] 127.0.0.1:53910 Invalid request (Unexpected EOF)

然而,我在浏览器中看到localhost:8888 ......

Warning: Unknown: failed to open stream: No such file or directory in Unknown on line 0

Fatal error: Unknown: Failed opening required '_router.php' (include_path='.:') in Unknown on line 0

将上面代码中的router属性更改为router: 'src/_router.php'可以修复我的计算机上的问题,但会破坏其他所有人。

所以它需要一些解释:为什么我需要在我的router属性中明确地重新指定基目录而我的团队中没有其他人?

1 个答案:

答案 0 :(得分:0)

可能是因为path.resolve没有通过使用给定的简单选项和options.base加入路由器的真实路径来提供在任务中生成的php脚本的绝对路径。

虽然任务期望routerspawn的完整路径,但它只能获得options.routerphp.js的相对路径,这会让彩虹独角兽到处闪烁。

original issue is here。那最终是fixed here,但this problem persisted,现在它appears fixed here但尚未与grunt-php主人合并。