У меня есть проект, написанный на Typescript
При локальной разработке:
ts-node
устанавливается как dev-зависимость, Команды:
to start: "ts-node src/index"
to init: "ts-node bin/init"
to init db: "ts-node bin/database-init"
to migrate db: "ts-node bin/database-migrate"
to add users: "ts-node bin/add-users"
При развертывании:
dev-зависимости удалены, приложение перенесено, команды:
to start: "node src/index"
to init: "node bin/init"
to init db: "node bin/database-init"
to migrate db: "node bin/database-migrate"
to add users: "node bin/add-users"
Таким образом, явынужден поддерживать это в моем package.json
, который будет расти
"scripts": {
"start": "ts-node src/index",
"start:js": "node src/index",
"init": "ts-node bin/init",
"init:js": "node bin/init",
"db:init": "ts-node bin/db-init",
"db:init:js": "node bin/db-init",
"db:migrate": "ts-node bin/db-migrate",
"db:migrate:js": "node bin/db-migrate",
"add:users": "ts-node bin/add-users",
"add:users:js": "node bin/add-users"
},
Я бы предпочел иметь одну команду, которая работает в обоих
, для этого я установилследующий псевдоним на сервере развертывания
alias ts-node=/usr/bin/node
как таковой - все это теперь работает для обоих ..
"scripts": {
"start": "ts-node src/index",
"init": "ts-node bin/init",
"db:init": "ts-node bin/db-init",
"db:migrate": "ts-node bin/db-migrate",
"add:users": "ts-node bin/add-users",
}
Но это не очень хорошее решение и не позволяет мне развернуть его где-либо еще.Я предпочитаю устанавливать пространство имен для right-node
на ts-node || node
внутри package.json
таким образом, чтобы оно было переносимым.
Я знаю, что пространство имен для всех зависимостей добавляется при запуске npm scripts
, Так что это происходит за кулисами, но есть ли встроенный функционал, чтобы сделать это руководствоLY