2016-12-28 112 views
1

我正在使用tsify来构建我的TypeScript文件。但是,目前看来tsify正在读取源文件中的所有TypeScript文件,而不仅仅是包含在我的主TypeScript文件(以及随后导入的文件)中的文件。我如何限制tsify只给browserify的文件?tsify - 只能阅读browserify文件

咕嘟咕嘟任务:

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" 
    ] 
} 

回答

1

要有tsify只包括在编译从Browserify源文件时,应指定在tsconfig.jsonfiles阵列文件。然后

{ 
    "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选项指定一个配置文件。)

+0

这可以很好地工作。它弄乱了我的代码编辑器,所以我不得不使用单独的配置选项。谢谢! – dawsonc623