Узел EISDIR, когда нет конечных случайных символов
Пытаясь запустить среду MJML из C#, я столкнулся с необъяснимым EISDIR. После некоторой повторной проверки выясняется, что это узел, сообщающий мне, что я пытаюсь выполнить команду только для файлов в каталоге (в данном случае open
команда), и этот узел не слишком доволен этим.
Вот настоящая ошибка
Error: EISDIR: illegal operation on a directory, open 'C:\Projects\Websites\FoyerRural\.bin'
at Error (native)
бросается при запуске следующей строки в Powershell
.\packages\Node.js.5.3.0\node.exe .\FoyerRural\node_modules\mjml\bin\mjml C:\Projects\Websites\FoyerRural\.bin\test.mjml -o C:/Projects/Websites/FoyerRural/.bin/test.html
Эта команда мне подходит, но дальнейшие попытки исправить ошибку самостоятельно привели меня к поиску обходного пути: добавьте другой уровень к выходному пути. Следующая команда тогда работает
.\packages\Node.js.5.3.0\node.exe .\FoyerRural\node_modules\mjml\bin\mjml C:\Projects\Websites\FoyerRural\.bin\test.mjml -o C:/Projects/Websites/FoyerRural/.bin/test.html/randomText
обратите внимание на добавленное /randomText
в конце выходного пути. Затем команда работает и генерирует файл test.html
как следует... игнорируя /randomText
Теперь, если я использую глобально установленный экземпляр node.js вместо моего конкретного проекта, как показано ниже
node .\FoyerRural\node_modules\mjml\bin\mjml C:\Projects\Websites\FoyerRural\.bin\test.mjml -o C:/Projects/Websites/FoyerRural/.bin/test.html
все работает как положено, а test.html
файл генерируется правильно.
глобально установленная версия узла - 6.11.3, конкретная версия проекта, установленная через экземпляр Visual Studio NuGet, - версия 5.3.0.
Есть ли известное решение этой проблемы? У меня есть обходной путь, но, на мой взгляд, он уродлив и нелогичен.