Запустить Nest JS скрипт из командной строки - PullRequest
0 голосов
/ 16 марта 2020

Я хочу иметь возможность запускать скрипт, который анализирует файл XML, используя Nest JS framework для проверки концепции, но я не уверен, как это сделать.

Я создал каталог scripts внутри /src и поместил свой script.ts с первоначальным console.log там. Как я могу запустить команды в этом файле? Должен ли я изменить файл script.ts на обычный javascript вместо typcript, а затем запустить узел myscript.ts? Каков правильный подход к этому способу?

Ответы [ 3 ]

0 голосов
/ 17 марта 2020

Вы можете добавить свойство bin к вашему package.json с именем команды, которую вы хотите дать, и файлом js, связанным с командой. Оттуда, если вы должны запустить «commandName», вы должны получить команду для правильного запуска (после сборки из Typescript в JavaScript, конечно). Например, вы можете видеть это . Исходный командный файл написан на Typescript с заданным shebang или #!/usr/bin/env node, позволяющим использовать node в качестве обработчика сценариев, а затем скомпилирован в JavaScript с остальной частью библиотеки. Оттуда я просто запускаю ogma <file_name> и позволяю сценарию позаботиться обо всем остальном.

Для вас добавление в Nest будет шагом впереди этого, но все еще довольно простым в управлении, поскольку у вас будет файл ввода, используйте NestFactory для создания приложения и передачи ожидаемых данных. в некоторый обработчик , как кратко описано здесь . Не стесняйтесь комментировать, если у вас есть какие-либо вопросы.

0 голосов
/ 17 марта 2020

Мне удалось запустить файл TS, используя npx ts-node my-file.ts

0 голосов
/ 16 марта 2020

То, что вы можете искать, это ts-node. Если у вас есть класс Typescript, который выполняет синтаксический анализ XML и не зависит напрямую от чего-либо в Nest, вы можете использовать this . Если ваше приложение требует, чтобы вы запустили Nest, чтобы выполнить синтаксический анализ XML, вы можете запустить сервер и сделать запрос командной строки, используя CURL, следуя шаблону, подобному this

...