karma在使用es6-transform-karma-typescript转换文件时卡住了




我正在尝试使用karma-typescript建立一个带有typescript, karma和mocha的单元测试框架 用于将es6代码转换为浏览器兼容的es5代码。在我的例子中,工作流卡在下一行。

16 08 2021 19:34:35.898:INFO [compiler.karma-typescript]: Compiled 64 files in 6103 ms.
16 08 2021 19:34:36.422:DEBUG [bundler.karma-typescript]: Project has 247 import/require statements, code will be bundled
**16 08 2021 19:34:36.500:DEBUG [es6-transform.karma-typescript]: Transforming /Users/test/sourcecode/test-web-ui/src/app/Memory.js**
这是我的tsconfig。Json设置和karma.conf设置

karma.conf:

const {dirname, join, resolve} = require("path");
module.exports = (config) => {
config.set({
plugins: ['karma-chrome-launcher', 'karma-mocha', 'karma-typescript', 'karma-webpack', 'webpack','karma-mocha-reporter'],
frameworks: ['mocha', 'karma-typescript'],
preprocessors: {
"**/*.ts": ["karma-typescript"],
"**/*.tsx": ["karma-typescript"] // *.tsx for React Jsx
},
logLevel: config.LOG_DEBUG,
browsers: ['Chrome'],
singleRun: true,
autoWatch: false,
color:true,
reporters: ["mocha", "karma-typescript"],
files: [{ pattern: "src/**/*.ts" }, {pattern: "src/**/*.tsx" }],
karmaTypescriptConfig: {
stopOnFailure: true,
bundlerOptions: {
acornOptions: {
ecmaVersion: 8,
},
transforms: [
require("karma-typescript-es6-transform")({
presets: [require("@babel/preset-env")]
})
]
},
compilerOptions: {
target: "ES2015",
lib: ["ESNext", "dom"],
module: "CommonJS",
incremental: false
},
tsconfig: "testing.tsconfig.json"
}
});
}

tsconfig.json:

{
"compilerOptions": {
"target": "ES2017",
"module": "CommonJS",
"incremental": true,
"noUnusedParameters": false,
"sourceMap": true,
"jsx": "react",
"strict": true,
"esModuleInterop": true,
"declaration": true,
"declarationMap": true,
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"lib": [
"dom",
"dom.iterable",
"esnext"
],
"allowJs": true,
"allowSyntheticDefaultImports": true,

"noFallthroughCasesInSwitch": true,
"moduleResolution": "node",
"resolveJsonModule": true,
"isolatedModules": true
},
"include": ["src/**/*.ts","src/**/*.tsx"],
"exclude": ["node_modules"]
}

我在package.json中使用下面的命令运行测试。

test": "karma start karma.conf.js——log-level=DEBUG",

有谁能帮忙找出这个问题吗?

我有这个问题一段时间了,该死的,这是令人沮丧的。我在这里找到了答案。显然"acorn"需要运行版本8或使用"karma-typescript-es6-transform">

棘手的部分是上面发布的链接说他们已经修复了这个问题。他们确实做到了!如果你检查你的包裹锁。Json和搜索"你可能会发现一些依赖需要"acorn"如果你向下滚动到" karma-typescript-es6-transform "你会看到它需要"橡果"并且正在运行^8.x.x版本。这就是我发现自己的地方,编译仍然挂起

问题是我的主"依赖仍然在^7.x版本上。即使"karma-typescript-es6-transform"需要租用版本,节点不会尊重这一要求,并使用主版本。依赖版本。

我现在的解决办法是,我安装acorn作为一个开发依赖,所以我确信我将得到最新的版本:npm i --save-dev acornTry out

相关内容

  • 没有找到相关文章

最新更新