无法运行非根目录脚本:如何配置路径直接执行index.ts?
简化index.ts执行路径的几种方案
方案1:用package.json的scripts(最推荐)
直接在项目根目录的package.json里加个自定义脚本,无需额外依赖:
{ "scripts": { "start": "npx ts-node src/controller/index.ts" } }
之后在根目录执行npm start(用yarn就跑yarn start),就等同于执行了完整路径的命令,操作更省事。
方案2:根目录建转发用的index.ts
在项目根目录新建一个index.ts,里面只写一行导入代码:
import './src/controller/index.ts';
这样你再执行npx ts-node index.ts时,就会自动加载src/controller下的目标文件,完全满足你想要的调用方式,零配置零依赖。
方案3:配置ts-node路径别名(适合多路径映射场景)
如果项目有多个文件需要路径映射,可以用这个方法,但需要安装依赖:
- 先安装
tsconfig-paths:
npm install --save-dev tsconfig-paths
- 修改
tsconfig.json,添加路径映射配置:
{ "compilerOptions": { "baseUrl": ".", "paths": { "./index.ts": ["src/controller/index.ts"] } } }
- 执行命令时需带上注册参数:
npx ts-node -r tsconfig-paths/register index.ts
不过这个方案每次执行都要带参数,不如前两个方案便捷,更适合复杂的多路径项目场景。
内容的提问来源于stack exchange,提问作者Pedro Henrique
相关产品推荐
相关产品推荐

