我正在尝试用TypeScript和Angular应用程序运行一个开发服务器,而不是每次都转译ts文件。
我发现我可以用ts-node运行.ts文件,但我也想观看.ts文件并重新加载我的应用程序/服务器。这方面的一个例子是命令gulp watch。
我正在尝试用TypeScript和Angular应用程序运行一个开发服务器,而不是每次都转译ts文件。
我发现我可以用ts-node运行.ts文件,但我也想观看.ts文件并重新加载我的应用程序/服务器。这方面的一个例子是命令gulp watch。
当前回答
这里有一个替代HeberLZ的答案,使用npm脚本。
我的package.json:
"scripts": {
"watch": "nodemon -e ts -w ./src -x npm run watch:serve",
"watch:serve": "ts-node --inspect src/index.ts"
},
-e标志设置要查找的扩展, -w设置监视目录, -x执行脚本。
watch:serve脚本中的——inspect实际上是一个node.js标志,它只是打开调试协议。
其他回答
我宁愿不使用ts-node,总是从dist文件夹运行。 要做到这一点,只需设置您的包。Json默认配置:
....
"main": "dist/server.js",
"scripts": {
"build": "tsc",
"prestart": "npm run build",
"start": "node .",
"dev": "nodemon"
},
....
然后不加恶魔。Json配置文件:
{
"watch": ["src"],
"ext": "ts",
"ignore": ["src/**/*.spec.ts"],
"exec": "npm restart"
}
这里,我使用"exec": "npm restart" 所以所有ts文件将重新编译为js文件,然后重新启动服务器。
要在开发环境中运行,
npm run dev
使用这个设置,我将始终从分布式文件运行,而不需要ts-node。
步骤1:你可以简单地安装nodemon和ts-node(如果你已经安装了,跳过)
npm install --save-dev nodemon ts-node
步骤2:你可以在package.json中配置启动脚本
"start": "nodemon ./src/app.ts"
现在nodemon自动从项目中识别typescript,自己使用ts-node命令。使用npm start,它会自动编译/监视和重载。
如果你得到任何错误,如typescript模块没有在项目中找到。在项目文件夹中简单使用此命令。
npm link typescript
把这个加到你的包里。json文件
scripts {
"dev": "nodemon --watch '**/*.ts' --exec 'ts-node' index.ts"
}
要做到这一点,你还需要安装ts-node作为dev-dependency
yarn add ts-node -D
运行yarn dev启动dev服务器
这对我来说很管用:
nodemon src/index.ts
显然,由于这个拉请求:https://github.com/remy/nodemon/pull/1552
nodemon和ts-node:
nodemon --watch source --ext ts,json --exec "node --loader ts-node/esm ./source/index.ts"