我在nodejs中开发我的项目。我发现如果我需要代码和测试api,我会运行两个控制台,一个是执行typescript watch,另一个是执行服务器。
我认为这很麻烦。我发现github上的其他开发人员在package.json
编写了脚本。调用任何命令都很容易。它吸引了如何编写脚本以及我的开发工作流程。
简而言之,打字稿监视的命令是tsc -w
,运行服务器的命令是node app.js
。我的想法是将命令合并为tsc -w & node app.js
,但我无法同时处理这两个命令。我该怎么办?感谢。
答案 0 :(得分:5)
我的想法是将命令合并为tsc -w&节点app.js但我无法同时处理这两个命令。我该怎么做
您有几个选择。最简单的方法是使用ts-node
:https://github.com/TypeStrong/ts-node
答案 1 :(得分:3)
TLDR,如果您喜欢nodemon,这是获取文件监视,编译和执行的直接方法:
nodemon --ext ts --exec 'tsc && node dist/index.js'
可以选择用babel替换tsc,以加快编译速度。
这是一个更完整的示例,位于package.json(带有源映射)中:
"scripts": {
"develop": "nodemon --ext ts --exec 'yarn build --incremental && yarn serve'",
"build": "tsc",
"serve": "node --require source-map-support/register dist/index.js",
...
},
如果需要,请安装source-map-support作为依赖项,呵呵...源地图支持!否则,从上面的--require source-map-support/register
脚本中删除serve
。
tsconfig.json
{
"compilerOptions": {
...
"sourceMap": true,
"outDir": "dist",
}
}
答案 2 :(得分:1)
只是想把我的帽子扔在这里,这是一个使用 ts-node-dev
和 concurrently
的解决方案,类似于@HerberthObregon 提供的解决方案,但使用 ts-node-dev
而不是 nodemon
:
"scripts": {
"start": "npm run build && concurrently \"npm run build:watch\" \"npm run dev\"",
"dev": "tsnd --respawn src/main.ts",
"build": "tsc -p tsconfig.release.json",
"build:watch": "tsc -w -p tsconfig.release.json"
}
奖励:如果您在计算 tsc
和 tsconfig.json
时需要帮助,我会使用此 node typescript starter 中的合理默认值。
答案 3 :(得分:0)
另一个选择是使用nodemon:
tsc -w & nodemon app.js
自Typescript 3.4起,编译速度更快,因为您可以使用incremental
compiler option。
答案 4 :(得分:0)
安装concurrently
,使用npm
或yarn
yarn add concurrently -D
使用此命令创建脚本
"scripts": {
"run": "tsc && concurrently \"tsc -w\" \"nodemon dist/app.js\"",
}
先运行tsc,以便在运行节点时目录具有某些内容
随之,您将运行您的Typescript应用程序?