目前我正在将旧的 Angular 1 项目从 ES5 转换为 TS。我们选择将所有遗留文件重命名为 typescript、修复编译错误并使用 typescript 编写新的 Angular 1 组件的方法。我们正在使用 grunt-ts 进行编译。编译成功后,我们使用 grunt job 清理所有生成的 JS 文件。
问题: grunt-ts 任务完成,然后业力测试任务开始。但是由于某些原因,在 grunt-ts 完成并且 karma 任务启动后,js 文件会出现在源目录中。这就是 karma 任务失败的原因,因为它找不到 js 规范文件。我不明白为什么 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
} }