【发布时间】:2019-12-28 00:16:57
【问题描述】:
我有打字稿编译设置,编译工作完美。
然后我将jest(一个测试框架)安装为devDependency。这仅用于开发(因此它是 devDependency),不应成为编译包的一部分。
现在编译会导致以下错误:
node_modules/@types/babel__template/index.d.ts:16:28 - error TS2583: Cannot find name 'Set'. Do you need to change your target library? Try changing the `lib` compiler option to es2015 or later.
16 placeholderWhitelist?: Set<string>;
能否解决此错误,如果可以,如何解决?添加
"lib": ["es6"]不是可接受的解决方案,因为 jest 的实现细节不应该要求我像这样修改我的编译器选项。另请注意,jest运行良好。如果没有其他解决方案,那么这是一个可以接受的答案。为什么
tsc编译devDependencies,我该如何阻止它?我不明白为什么我突然要担心嵌套的 babeldevDependency会影响我的编译。
编辑:tsconfig.json
{
"compilerOptions": {
"target": "es5",
"module": "commonjs",
"sourceMap": true,
"rootDir": "./src",
"outDir": "./build",
"strict": true,
"esModuleInterop": true
},
"include": [
"src/**/*"
],
"exclude": [
"/src/**/?(*.)test.ts"
]
}
注意:这不是与node_modules/@types/babel _template/index.d.ts :16:28 - error TS2583: Cannot find name 'Set'的重复
这个问题是在问为什么 tsc 正在查看 node_modules,这与我的问题不同(并且接受的答案是针对该问题的)。
【问题讨论】:
-
所以您刚刚添加了 Jest 并且捆绑失败了?没有对 package.json 或 .babelrc 进行任何更改?
-
是的,没有变化。我没有
.babelrc,但错误来自 babel,大概是 jest 正在使用。 -
请问您可以发布您的
tsconfig.json吗?
标签: typescript jestjs babeljs