【发布时间】:2020-03-05 17:10:15
【问题描述】:
我是 TypeScript 新手。
我正在将自己用 JS 编写的 React.js 项目迁移到 TypeScript。
我修复了所有错误,并检查了它在 npm start 上运行良好。
但是当我尝试用 tsc 编译时,它永远不会工作,也永远不会显示任何日志。
但正如您所见,tsc -v 有效。
我在 VSCode 中尝试了 Ctrl+Shift+B,但它也显示相同的结果,没有。
在我的tsconfig.json 中,我刚刚将outDir 添加到自动生成的tsconfig.json 中。
{
"compilerOptions": {
"target": "es5",
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"skipLibCheck": true,
"esModuleInterop": true,
"allowSyntheticDefaultImports": true,
"strict": true,
"forceConsistentCasingInFileNames": true,
"module": "esnext",
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true,
"noEmit": true,
"jsx": "react",
"outDir": "./dist"
},
"include": [
"./src/*"
]
}
有什么办法可以解决吗?
提前致谢。
【问题讨论】:
-
你检查'dist'文件夹是否有js文件?编译器可以在没有任何输出的情况下静默结束。尝试使用“--extendedDiagnostics”选项运行它。
-
@Michal 是的,我检查了 dist。不存在文件。 --extendedDiagnostics 显示 283 个文件和 92063 行...但 idk 是正确的数字
-
看起来“noEmit”编译器选项是这里的问题。将其设置为 false 或将其删除,因为它的默认值为 false。
-
@Michal 哦,谢谢。有效。请添加您的评论作为答案。我会检查这是正确的答案。我不明白为什么 CRA 团队制作 noEmit: true for default...
-
@Michal Ah.. 我还发现
npm run build仅在noEmit: true时有效...
标签: reactjs typescript tsc