我正在尝试使用 typescript 和Yarn工作区设置一个monorepo项目。
该项目的结构如下所示:
/example
/packages
/lib1
示例是一个出于开发目的而使用这些包的应用程序。
当我使用yarn tsc --build --force
时,我得到以下错误:
example/tsconfig.json:6:18 - error TS6310: Referenced project '/packages/intro' may not disable emit.
下面是tsconfig.json的例子:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "./lib"
},
"references": [{ "path": "../packages/intro" }]
}
而这个项目的根源是:
{
"$schema": "https://json.schemastore.org/tsconfig",
"display": "React Native",
"compilerOptions": {
"allowJs": true,
"allowSyntheticDefaultImports": true,
"baseUrl": ".",
"composite": true,
"declaration": true,
"esModuleInterop": true,
"isolatedModules": true,
"jsx": "react-native",
"lib": ["es2017"],
"module": "commonjs",
"moduleResolution": "node",
"noEmit": true,
"paths": {
"my-project/*": ["./packages/*/src"]
},
"resolveJsonModule": true,
"skipLibCheck": true,
"strict": true,
"target": "esnext"
},
"exclude": [
"packages/*/lib",
"node_modules",
"babel.config.js",
"metro.config.js",
"jest.config.js"
],
"references": [{ "path": "./example" }, { "path": "./packages/lib1" }]
}
以及lib1的tsconfig.json:
{
"extends": "../../tsconfig.json",
"compilerOptions": {
"outDir": "./lib"
}
}
正如你所看到的,我把noEmit
设置为true
,所以我不知道错误是什么。我试着直接在每个tsconfig文件中设置这个值,但是没有像预期的那样做任何事情。
2条答案
按热度按时间pbgvytdp1#
基于zerdox评论的解决方案:
只需添加以下内容:
到您的根目录tsconfig.json
示例:
xdyibdwo2#
将
noEmit
设置为true
将禁用发射,这就是错误所显示的内容。您需要将noEmit
设置为false
才能启用发射。