У нас есть один Gruntfile.js, который выглядит так на моей коллеге.
php: {
dist: {
options: {
port: 8888,
useAvailablePort: true,
keepalive: true,
router: '_router.php',
base: 'src' //dev mode
}
}
},
…и он отлично работает на своей машине, но не моя. _router.php
находится в каталоге верхнего уровня. Бег grunt dev
не приводит к ошибкам в моей консоли во время развертывания 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
собственность и никто другой в моей команде?
Возможно потому что path.resolve
не предоставляет абсолютные пути к php-скрипту, порожденному в задаче, используя простые опции и options.base
присоединиться к истинному пути к маршрутизатору.
Пока задача ожидает полного пути к router
внутри spawn
, он получает только относительный путь от options.router
внутри php.js
, которого рвет радуга, единорог сверкает повсюду.
оригинальный вопрос здесь. Это было в конце концов исправлено здесь, и все еще эта проблема сохранилась, так что теперь здесь исправлено но еще не слились с grunt-php
мастер.
Других решений пока нет …