目前我正在将旧的Angular 1项目从ES5转换为TS。 我们选择将所有遗留文件重命名为typescript,修复编译错误并使用typescript编写新的Angular 1组件的方法。 我们正在使用grunt-ts进行编译。编译成功后,我们使用grunt job清理所有生成的JS文件。
问题:grunt-ts任务结束,并且在业力测试任务开始之后。 但由于某些原因,在grunt-ts完成并且karma任务开始后,js文件出现在源目录中。这就是karma任务失败的原因,因为它无法找到js spec文件。我无法理解为什么grunt-ts js文件稍后会在源目录中生成。
这是tsconfig文件
{ "compilerOptions": {
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "amd",
"target": "es5",
"noImplicitAny": false,
"checkJs": false,
"allowJs": true,
"inlineSourceMap": true,
"inlineSources": true,
"removeComments": false,
"types" : ["jasmine"],
"lib": ["es2017", "dom"] }, "include": [
"src/**/*.ts" ], "exclude": [
"node_modules",
"dist",
".npmcache",
"coverage",
"dist",
"docs",
"grunt-build",
"lib",
"./",
"typings",
"modules",
"target",
"test" ]
}
这是grunt-ts任务
grunt.initConfig({
ts: {
default: {
// specifying tsconfig as a boolean will use the 'tsconfig.json' in same folder as Gruntfile.js
tsconfig: true
},
comileSources: {
src: ["src/sources/**/*.ts"],
reference: 'referencesSources.ts',
tsconfig: true,
out:'target/sources/sources.js',
},
spec: {
reference: 'referencesSpecs.ts',
src: ["referencesSpecs.ts", "test/spec/sources/**/*.ts"],
tsconfig: true
} }