NextJS项目中如何在服务端运行Typescript CLI脚本
NextJS + TypeScript 项目运行CLI脚本解决方案
核心说明
不需要修改webpack配置,也不需要修改项目package.json的type字段,CLI脚本独立于NextJS构建流程运行,仅需调整ts-node运行参数即可适配现有配置。
方案一:临时指定编译参数(无需新增配置文件)
- 保持
src/cli.ts末尾的空导出语句export {},解决--isolatedModules校验报错 - 运行脚本时追加compilerOptions参数,强制指定编译为CommonJS模块:
ts-node --compiler-options '{"module": "CommonJS"}' src/cli.ts
如果是Windows环境,引号需要转义:
ts-node --compiler-options "{\"module\": \"CommonJS\"}" src/cli.ts
如果需要频繁运行,可以在package.json的scripts字段中新增快捷命令:
{ "scripts": { "cli": "ts-node --compiler-options '{\"module\": \"CommonJS\"}' src/cli.ts" } }
后续直接执行npm run cli即可运行脚本。
方案二:新增CLI专属TS配置(适合多脚本场景)
如果项目中需要编写多个CLI脚本,可以单独新建CLI配置文件,免去每次传参的麻烦:
- 在项目根目录新建
tsconfig.cli.json:
{ "extends": "./tsconfig.json", "compilerOptions": { "module": "CommonJS", "isolatedModules": false }, "include": ["src/**/*.cli.ts", "src/cli/**/*"] }
- 所有CLI脚本可以不用添加空导出语句,运行时指定该配置即可:
ts-node --project tsconfig.cli.json src/cli.ts
内容的提问来源于stack exchange,提问作者Sonson123
相关产品推荐
相关产品推荐

