create-react-app中--scripts-version与--typescript参数的区别及联用合理性
React + TypeScript 项目创建方式的区别分析
Great question! Let's break down the differences between these two approaches and whether combining them makes sense.
两种创建方式的核心区别
维护主体与生命周期
--scripts-version=react-scripts-ts是早期社区维护的第三方脚本包,用来给 create-react-app 补充 TypeScript 支持,诞生于官方内置 TypeScript 功能之前。但目前这个包已经停止维护,代码仓库归档,不再适配新版本的 React、TypeScript 或相关工具链。--typescript是 create-react-app 官方推出的内置选项,是当前官方推荐的 React + TypeScript 项目初始化方式,会随着 create-react-app 同步更新,始终兼容最新的生态版本。
项目配置与体验
- 使用
react-scripts-ts时,项目的 TypeScript 配置、ESLint 规则等由第三方脚本维护,可能需要额外手动调整适配需求,而且由于停止维护,遇到新版本依赖冲突的概率极高。 - 使用
--typescript选项创建的项目,所有配置(比如tsconfig.json、ESLint 集成)都是官方统一维护的开箱即用方案,无需额外折腾,还能获得官方的技术支持和更新。
- 使用
依赖结构
react-scripts-ts会替代官方的react-scripts成为项目核心依赖;而--typescript只是基于官方react-scripts添加 TypeScript 相关依赖(如typescript、@types/react等),项目核心依然是官方脚本包。
同时指定两个参数是否合理?
完全不合理,甚至会引发冲突:
- 当你同时使用
--typescript和--scripts-version=react-scripts-ts时,create-react-app 会优先加载你指定的react-scripts-ts脚本,但这个脚本本身已经包含 TypeScript 支持逻辑,而官方的--typescript选项是针对默认react-scripts的增强设置。两者逻辑会互相冲突,大概率导致项目初始化失败,或者生成一个配置混乱、无法正常运行的项目。 - 更关键的是,
react-scripts-ts已经被官方方案完全替代,没有任何理由再去使用它,更不用说和官方选项混用了。
推荐方案
现在创建 React + TypeScript 项目,直接使用官方命令即可:
create-react-app my-app --typescript
(注:目前最新版本的 create-react-app 支持交互式创建,你也可以直接运行 create-react-app my-app,然后在提示中选择 TypeScript 模板,效果完全一致。)
内容的提问来源于stack exchange,提问作者Andrey Bushman
相关产品推荐
相关产品推荐

