【发布时间】:2019-03-09 16:57:39
【问题描述】:
我有一个项目写在Typescript
本地开发时:
ts-node 作为开发依赖安装,命令是
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"
部署时:
开发依赖项被删除,应用程序被转译,命令被
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 时会添加所有依赖项的命名空间,所以这确实发生在幕后,但是是否有任何内置功能可以手动执行此操作?
【问题讨论】:
标签: node.js npm package.json npm-scripts