4

目前我正在将旧的 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
        } }
4

0 回答 0