Git Bash или NPM в Windows преобразует аргумент в путь - PullRequest
1 голос
/ 20 сентября 2019

Я пишу скрипт node.js для исправления файлов сервера.Наши машины для разработки - Windows, но серверы - Linux.

Когда я выполняю, запускаю следующий скрипт:

npm run patch-file --source-file "/path/to/file" --destination "/path/to/file"

Где-то между Git bash или NPM аргументыпреобразованы в пути Windows.Что я не хочу здесь случиться.Я обрабатываю преобразование пути на основе источника / назначения в самом скрипте.

Фактический результат:

node ./scripts/patch-file.js "--source-file" "C:/Git/path/to/file" "--destination" "C:/Git/path/to/file"

Ожидаемый результат:

node ./scripts/patch-file.js "--source-file" "/path/to/file" "--destination" "/path/to/file"

Примечания

Это похоже на Git bash, я не могу его реплицировать, используяКомандная строка Windows или PowerShell.Я все еще хотел бы выяснить это, потому что я хотел бы, чтобы это работало без перебоев между командными терминалами.

1 Ответ

0 голосов
/ 23 сентября 2019

Я полагаю, что вы ищете переменную среды MSYS_NO_PATHCONV=1, как обсуждалось здесь или здесь .

Я провел тест с notepad.exe.Хотя это сработало и открыло текстовый файл из корня установки Git для Windows

notepad.exe /LICENSE.txt

, предполагая, что преобразование пути имело место, это не удалось, notepad.exe пожаловался, что файл/LICENSE.txt не может быть найден

MSYS_NO_PATHCONV=1 notepad.exe /LICENSE.txt

Итак, я думаю, что последняя форма - это то, что вам нужно.

Обратите внимание, что MSYS_NO_PATHCONV, похоже, действительно специфично для Git для Windows и недоступен в других терминалах на базе MSYS2.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...