我正在尝试用TypeScript和Angular应用程序运行一个开发服务器,而不是每次都转译ts文件。
我发现我可以用ts-node运行.ts文件,但我也想观看.ts文件并重新加载我的应用程序/服务器。这方面的一个例子是命令gulp watch。
我正在尝试用TypeScript和Angular应用程序运行一个开发服务器,而不是每次都转译ts文件。
我发现我可以用ts-node运行.ts文件,但我也想观看.ts文件并重新加载我的应用程序/服务器。这方面的一个例子是命令gulp watch。
当前回答
我宁愿不使用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。
其他回答
我做过
"start": "nodemon --watch 'src/**/*.ts' --ignore 'src/**/*.spec.ts' --exec ts-node src/index.ts"
纱线开始。ts节点不像' Ts-node '
只需更新这3个包
nodemon, ts-node, typescript
yarn global add nodemon ts-node typescript
or
npm install -g nodemon ts-node typescript
现在你可以运行这个,问题解决了
nodemon <filename>.ts
把这个加到你的包里。json文件
scripts {
"dev": "nodemon --watch '**/*.ts' --exec 'ts-node' index.ts"
}
要做到这一点,你还需要安装ts-node作为dev-dependency
yarn add ts-node -D
运行yarn dev启动dev服务器
另一种方法是先在监视模式下使用tsc -w编译代码,然后在javascript上使用nodemon。这种方法在速度上与ts-node-dev相似,并且具有更类似于生产的优点。
"scripts": {
"watch": "tsc -w",
"dev": "nodemon dist/index.js"
},
我已经抛弃了nodemon和ts-node,取而代之的是一个更好的选择,ts-node-dev https://github.com/whitecolor/ts-node-dev
只需运行ts-node-dev src/index.ts
(编辑) 自从我写了这个答案,nodemon已经改进了很多,现在所需的配置更轻了,性能也更好了。我目前使用这两种方法(显然是在不同的项目中),并且都很满意。