如何用nodemon启动TypeScript服务并添加--max-old-space-size参数
如何在nodemon+ts-node启动时配置--max-old-space-size参数
你的问题出在把--max-old-space-size参数传给了nodemon,而nodemon会将这个参数转发给ts-node,但ts-node并不识别Node.js的内存配置参数——这个参数需要直接传给底层的node进程。下面是几种可行的配置方式:
方法一:通过--exec指定带参数的node命令
直接让nodemon调用node进程,同时加载ts-node的注册器来处理TypeScript文件,把内存参数加在node后面:
适用于Linux/macOS的配置:
"start:ts": "nodemon --exec 'node --max-old-space-size=1024 -r ts-node/register' server.ts"
适用于Windows的配置(注意用双引号转义):
"start:ts": "nodemon --exec \"node --max-old-space-size=1024 -r ts-node/register\" server.ts"
方法二:通过环境变量传递参数
利用TS_NODE_OPTIONS环境变量,告诉ts-node将指定参数传递给node:
适用于Linux/macOS的配置:
"start:ts": "TS_NODE_OPTIONS='--max-old-space-size=1024' nodemon server.ts"
适用于Windows的配置:
"start:ts": "set TS_NODE_OPTIONS=--max-old-space-size=1024 && nodemon server.ts"
方法三:使用ts-node的--node-args参数(ts-node >=10.0.0)
如果你的ts-node版本在10.0.0及以上,可以用--node-args参数直接转发内存配置给node:
适用于Linux/macOS的配置:
"start:ts": "nodemon --exec 'ts-node --node-args=\"--max-old-space-size=1024\"' server.ts"
适用于Windows的配置:
"start:ts": "nodemon --exec \"ts-node --node-args=\\\"--max-old-space-size=1024\\\"\" server.ts"
内容的提问来源于stack exchange,提问作者pmiranda
相关产品推荐
相关产品推荐

