Проблема. Мой сценарий построения лесов npx отлично работает в Linux, но не работает в Windows. Однако я вижу множество пакетов, которые отлично работают в Windows, но я не смог понять, что они делают по-другому. Я спросил инструменты искусственного интеллекта (
Что происходит в Linux? - Скрипт нормально выполняется узлом и работает нормально.
Что происходит в Windows? - Он просто открывает новое окно командной строки, ничего не делая.
@reuk/start для создания часто используемых шаблонов проектов.npx create-vite.package.json -> "bin": "./bin/cli.js". и опубликовал пакет.node ./bin/cli.js, работает отлично. единственная проблема в том, что при выполнении npx @reuk/start скрипт не вызывается с использованием узла.cli.js есть shebang #!/usr/bin/env node, чтобы сообщить интерпретатору запустить его с помощью node. Я знаю, что shebang работает только в системах Unix, а Windows его не поддерживает, но как create-vite работает в Windows и почему у меня не работает, несмотря на аналогичный код?Что я здесь делаю не так? И что еще более важно, как мне обеспечить беспрепятственную кроссплатформенную работу?
Для справки вот код - @reuk/start | создай-пригласи



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Кажется, имя вашего bin скрипта конфликтует с командой запуска cmd.
Исправлением может быть выбор более конкретного имени для команды, под которой вы хотите, чтобы ваш скрипт был доступен. Это имя также должно быть допустимым именем файла, чтобы избежать дальнейших проблем.
В package.json:
"bin": {
"rvg": "bin/cli.js"
}
Вот упрощенное и технически неточное объяснение того, что происходит, когда вы бежите npx @reuk/start:
bin в package.json и создает оболочки для конкретной платформы в папке node_modules/.bin. В вашем случае он добавляет файлы с именем start, потому что другая команда — @reuk/start не является допустимым именем файла.start, но разрешает команду cmd, а не ваш скрипт.Честно говоря, последний пункт кажется ошибкой, и существует довольно много открытых ошибок, связанных с пакетами с ограниченной областью действия в целом, но я не нашел объяснения этому конкретному случаю.
@RohitKaushal да, думаю, да. Кроме того, это может быть какая-то проблема, похожая на эту. В любом случае, даже если вы указали имя, как я предложил, npx должен корректно работать с полным именем пакета npx @reuk/start.
Идеальный! Это сработало. Имя скрипта
startбыло проблемой, которая конфликтовала с командойcmdstart. Изменение его на что-либо другое решило проблему. Хотя я не уверен, почему выполнение"bin": "./bin/cli.js"не сработало, это также потому, что имя пакета с заданной областью такжеstartили потому, что@reuk/startне является допустимым именем файла, и npx не удалось создать какой-либо скрипт в.binдля этого пакета, поэтому создаем именованный сценарий был необходим?