tsify - 只读取 browserify 文件

tsify - Only read browserify files

我正在使用 tsify 构建我的 TypeScript 文件。但是,目前似乎 tsify 正在读取我的源代码中的所有 TypeScript 文件,而不仅仅是我的主要 TypeScript 文件(以及随后导入的文件)中包含的文件。如何将 tsify 限制为仅提供给 browserify 的文件?

Gulp 任务:

gulp.task("build", function()
{
  return browserify({})
    .add("index.ts")
    .plugin(tsify)
    .transform("babelify", {
      "presets" : ["es2015", "stage-0"]
    })
    .bundle()
    .pipe(source("index.js"))
    .pipe(gulp.dest("www"));
});

和tsconfig.json:

{
  "compileOnSave": true,
  "compilerOptions": {
    "lib": [
      "dom",
      "es2015",
      "es2016",
      "es2017"
    ],
    "noImplicitAny": true,
    "strictNullChecks": true,
    "target": "es2015"
  },
  "exclude": [
    "node_modules"
  ]
}

tsify在编译中只包含来自 Browserify 的文件,您应该在 tsconfig.json 文件中指定一个空的 files 数组。

{
  "compileOnSave": true,
  "compilerOptions": {
    "lib": [
      "dom",
      "es2015",
      "es2016",
      "es2017"
    ],
    "noImplicitAny": true,
    "strictNullChecks": true,
    "target": "es2015"
  },
  "files": []
}

tsify 将在编译中仅包含 Browserify 入口点文件及其依赖项。

如果您在 tsconfig.json 中使用其他工具,这可能会导致问题,因为它们不知道编译中涉及哪些文件。如果是这种情况,您也可以在 tsconfig.json 中包含入口点文件,或者可以使用单独的、不同名称的配置文件 - 例如tsconfig-tsify.json - 对于 tsify。 (您可以使用 tsifyproject 选项指定配置文件。)