react-app-env.d.ts
这个文件是使用CRA脚手架生成react项目时自动生成的,在平时的开发过程中看到这个文件就会感觉很疑惑,出于好奇心,在网上查找资料,得出下文
前置知识
这个是一个类型声明文件
它的内容很短,就一行
/// <reference types="react-scripts" />
其中///
三斜杠是XML表情的单行注释
而首行的三斜杠则代表三斜杠命令,注释的内容会被作为编译器指令使用,三斜杠命令仅可放在包含它的文件的最顶端。如果它们出现在一个语句或声明之后,那么则会被当作普通注释,不具备特殊含义,具体的可以看这里
/// <reference types="..." />
指令声明了对某个包的依赖,可以简单的理解为import
声明的包,reference一共有两种不同的属性:types和path,其中types用于声明对另一个库的依赖,path用于声明对另一个文件的依赖。
上面的react-app-env.d.ts
依赖react-script库的类型声明,而react-script库下的package.json的types字段声明了当前库的类型声明,所以最终会依赖于node_modules/react-script/lib/react-app.d.ts
文件,将react-app.d.ts文件作为类型声明,具体的可以看这里
注意: 你可能会在其他地方看到类似的声明,然后在node_modules文件夹下找到的库中发现package.json文件并没有声明types字段,因为它们被存放到了@types文件夹下
作用
当项目编译时,我们可能会引用一些图片,样式(比如*.module.scss
),这是文件如果没有类型声明,编译器并不能识别是什么文件,所以需要一个类型声明。
能不能删除
结论:可以删除
在执行构建之前会重新生成