尝试运行我的规范文件时,我在控制台中收到此错误:
Uncaught SyntaxError: Cannot use import statement outside a module
我的 tsconfig.spec 看起来像这样:
{
"extends": "../tsconfig.json",
"compilerOptions": {
"outDir": "../outDir/spec",
"baseUrl": "",
"types": [
"jasmine",
"node"
]
},
"files": [
"test.ts",
"polyfills.ts"
],
"include": [
"**/*.spec.ts",
"**/*.d.ts"
],
//
"exclude": ["node_modules"]
}
我的 tsconfig.app 看起来像这样:
{
"extends": "../tsconfig.json",
"angularCompilerOptions": {
"enableIvy": true
},
"compilerOptions": {
"outDir": "../outDir/app",
"baseUrl": "",
"types": [
"node"
]
},
"files": [
"main.ts",
"polyfills.ts"
],
"exclude": [
"test.ts",
"**/*.spec.ts"
]
}
This is my tsconfig.json:
{
"compileOnSave": false,
"compilerOptions": {
"importHelpers": true,
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"resolveJsonModule":true,
"target": "es2022",
"allowSyntheticDefaultImports": true,
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2022",
"dom"
],
"module": "es2022",
"baseUrl": "./",
"paths": {
"tslib": ["node_modules/tslib/tslib.d.ts"]
}
},
"include": [
"src/app/**/*.component.ts",
"src/app/**/**/*.component.ts"
],
"exclude": [
"node_modules",
"src/app/**/*.spec.ts",
"src/app/**/**/*.spec.ts"
],
}
我尝试将“type”:“module”添加到我的package.json中,但我不得不将其取消,因为它不再正确读取我的karma.conf。我还在 stackoverflow 上看到了降级 Chart.js 的解决方案,但我做了,但它仍然不起作用。我不知道还能尝试什么。 另外,我们如何确定 3 个 tsconfig 文件中的文件、包含和排除内容?我一直在尝试这些选项,但我仍然无法确定什么会去哪里。我将规范和组件文件放入 karma.conf 的文件字段中。我还共享了 2/3 的 tsconfig 文件,最后一个文件是 tsconfig.json,我包含了我的 component.ts 文件并排除了我的 spec.ts 文件。这是正确的吗?
您需要从底座
includes
上移除 files
和 tsconfig.json
。该文件旨在包含您正在处理的任何类型的 TypeScript 代码的基本编译器设置。其他配置文件(如 tsconfig.app.json
或 tsconfig.spec.json
)从此基本配置扩展而来。