【问题标题】:gulp-typescript and typescript's new @types typings?gulp-typescript 和 typescript 的新 @types 类型?
【发布时间】:2016-12-29 11:26:05
【问题描述】:

我已将 @types/jasmine 安装为 devDependency。

我编译打字稿的 gulp 任务是这样的:

gulp.task('compile:tests', ['compile:typescript', 'clean:tests'], function () {
    var project = ts.createProject('tsconfig.json', { typescript: typescript });

    var tsResult = gulp.src(['spec/**/*spec.ts'])
        .pipe(ts(project));

    return tsResult.js
        .pipe(gulp.dest('spec/'));
});

还有我的 tsconfig.json

{
    "compilerOptions": {
        "target": "es6",
        "module": "commonjs",
        "moduleResolution": "node"
    },
    "exclude": [
        "node_modules"
    ]
}

但这会导致错误:

spec\linter.spec.ts(7,1):错误 TS2304:找不到名称“描述”。
spec\linter.spec.ts(8,3):错误 TS2304:找不到名称“它”。
spec\linter.spec.ts(17,5): 错误 TS2304: 找不到名称 'expect'。
spec\linter.spec.ts(20,3):错误 TS2304:找不到名称“它”。

我怎样才能让 typescript(当 gulp-typescript 使用时)来识别 @types/... 打字?

【问题讨论】:

    标签: typescript typescript-typings gulp-typescript typescript2.0


    【解决方案1】:

    更新: 最新版本解决了这个问题:使用

    安装

    npm install gulp-typescript@3

    预 gulp-typescript@3: 到目前为止,我的工作是手动包含所有 @types 类型,如下所示:

    gulp.src(['spec/**/*spec.ts', "./node_modules/@types/**/*.d.ts"])
    

    如果您有相互冲突的类型版本(这里是 @types/node@x),那么您可以跳过它们以避免重复:

    gulp.src([
      paths.source + '**/*.ts', 
      "node_modules/@types/**/index.d.ts", 
      "!node_modules/@types/**/node_modules/**/index.d.ts"])
    

    【讨论】:

      【解决方案2】:

      以下对我有用。

      {
          "compilerOptions": {
              "target": "es6",
              "module": "commonjs",
              "moduleResolution": "node"
          },
          "files": [
              "node_modules/@types/**/*.d.ts"
          ],
          "exclude": [
              "node_modules"
          ]
      }
      

      nvm,这不起作用,同时使用“include”和“exclude”也不行。

      【讨论】:

        【解决方案3】:

        您可以使用project.src() 代替gulp.src(['typings-glob', 'sources-glob'])

        ** 出于某种原因,在我正在处理的项目中,使用 project.src() 时,转译需要多花大约 3 秒,所以我坚持使用 gulp.src 选项。

        【讨论】:

        • 刚刚测试过这个;如果我排除 node_modules 对我不起作用。 (没有排除它会因其他错误而爆炸):(
        • 您可以使用 include 属性代替或与 exclude 一起使用。见tsconfig schema
        猜你喜欢
        • 2018-07-11
        • 2016-09-29
        • 2019-03-02
        • 2019-06-09
        • 2019-01-03
        • 1970-01-01
        • 2017-05-19
        • 2016-07-13
        • 2019-02-22
        相关资源
        最近更新 更多