ali*_*ill 8 enums symlink typescript create-react-app
在符号链接公共枚举和接口目录(名为 common,在 src/ 文件夹中符号链接)时遇到枚举问题。由于某种原因,从此文件夹导入接口不会触发错误,但导入枚举文件确实会触发错误!
可能有帮助的事情:(1)从 src 文件夹外部导入模块。使用 typescript 的 CRA 仅转换 src/ 下的文件夹,因此我将该文件夹符号链接到 src 内。(2) 我可以复制这些精确的枚举,在 src/ 中的单独文件中声明它们,运行yarn start,并且不会抛出任何错误!符号链接文件夹和 CRA 之间一定存在某种奇怪的交互。
请注意,使用带有 typescript 的 monorepo,为前端使用带有 typescript 模板的 create-react-app 。我再次可以从符号链接的公共文件夹导入接口,没有错误,只有当我导入枚举时才会出现问题。
这是 ../common/enums/Subject.ts 文件的代码:
enum Subject {
Biology = 'BIOLOGY',
Chemistry = 'CHEMISTRY',
Earth = 'EARTH',
Energy = 'ENERGY',
General = 'GENERAL',
Math = 'MATH',
Physics = 'PHYSICS',
Space = 'SPACE'
}
export default Subject;
Run Code Online (Sandbox Code Playgroud)
为了更好地衡量(也许这是我的 tsconfig.json?)这是我的前端 tsconfig.json:
{
"compilerOptions": {
"lib": [
"dom",
"dom.iterable",
"es6"
],
"target": "es6",
"baseUrl": "src",
"jsx": "react",
"module": "esnext",
"moduleResolution": "node",
"sourceMap": true,
"allowSyntheticDefaultImports": true,
"experimentalDecorators": true,
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"strict": true,
},
"include": [
"src",
"src/**/*.ts",
"src/**/*.test.ts",
"src/**/*.test.tsx"
]
}
Run Code Online (Sandbox Code Playgroud)
我确实有一个通用文件夹的 tsconfig.json,但不确定这是否会导致问题。这是公共文件夹及其 tsconfig.json 文件的结构。