如何修改ts-node-dev缓存目录?多种尝试失败求助
解决ts-node-dev缓存目录修改失败的方案
1. 直接给start脚本传递参数(最直接方案)
npm脚本接收外部参数必须在参数前加--,否则参数会被npm拦截,无法传递给ts-node-dev。正确命令:
npm run start -- --cache-directory ./your-custom-cache
等号形式同样生效:
npm run start -- --cache-directory=./your-custom-cache
2. 正确使用环境变量
注意:ts-node-dev的缓存目录环境变量是TS_NODE_DEV_CACHE_DIRECTORY(区别于ts-node的TS_NODE_CACHE_DIRECTORY),设置方式如下:
- 临时生效(当前shell会话):
export TS_NODE_DEV_CACHE_DIRECTORY="./your-custom-cache" npm run start
- 永久生效(写入shell配置文件):
echo 'export TS_NODE_DEV_CACHE_DIRECTORY="./your-custom-cache"' >> ~/.bashrc source ~/.bashrc npm run start
3. 修复start-custom-cache脚本的参数传递
针对你自定义的脚本,需调整两点:
- 参数传递格式:必须用
npm run start-custom-cache --myflag_cache_dir=./your-custom-cache的形式直接传递配置项 - 脚本变量展开:给package.json的脚本添加变量默认值,避免参数未传递时出错,修改后脚本:
"scripts": { "start-custom-cache": "ts-node-dev --transpile-only --cache-directory \"${npm_config_myflag_cache_dir:-./default-cache}\" ./src/parser.ts", "start": "ts-node-dev --transpile-only ./src/parser.ts" }
运行命令示例:
npm run start-custom-cache --myflag_cache_dir=./your-custom-cache
验证方法
可添加调试脚本确认参数是否正确传递:
"scripts": { "start-debug": "echo Received cache dir: $npm_config_myflag_cache_dir && ts-node-dev --transpile-only --cache-directory $npm_config_myflag_cache_dir ./src/parser.ts" }
运行后先查看打印的路径是否符合预期,再检查ts-node-dev的实际缓存目录。
内容的提问来源于stack exchange,提问作者Blitzkoder
相关产品推荐
相关产品推荐

