打字稿>我可以将tsconfig.json放在除项目根之外的其他地方吗?

时间:2017-03-02 10:25:37

标签: typescript

Typescript文档声明tsconfig.json文件应位于项目根目录:

https://www.typescriptlang.org/docs/handbook/tsconfig-json.html

由于我的项目要求,我必须拥有此文件的多个版本(Angular AOT,Universal,Webpack每个都需要不同的设置)。

这会使项目根变得混乱,所以理想情况下我想将它们移动到其他地方,例如在/ config /...下。

然而,这样做会使ts编译器和文件路径无法正确解析。例如,下面的排除设置仍将包含在编译

  "exclude": [
    "node_modules",
    "compiled",
    "e2e/**/*.ts",
    "src/main.browser.universal.aot.ts",
    "src/app/app.module.universal.node.ts"
  ],

将../放在他们面前并没有解决它。任何人都有任何想法或示例来演示如何将tsconfig.json放置在其他地方?

1 个答案:

答案 0 :(得分:0)

对于这类事情,我建议使用任何可用的任务管理器,最受欢迎的是:gruntgulp

关于如何设置打字稿编译(example),有很多文章。

以下是我从gulp使用tsconfig的示例:

gulp.task('build.js.dev', () => 
{
    var tsProject = ts.createProject('tsconfig.json', {
        typescript: require('typescript')
    });

    var tsResult = tsProject.src()
        .pipe(sourcemaps.init())   
        .pipe(tsProject());  

    return merge([
        //Write definitions 
        tsResult.dts.pipe(gulp.dest(TEMP_TARGET_FOLDER)),
        //Write compiled js
        tsResult.js.pipe(sourcemaps.write(
            ".", 
            { 
                includeContent: false, 
                sourceRoot: "../dist" 
                // mapSources: function(sourcePath) 
                // {
                //     console.log(sourcePath);
                //     return sourcePath;//.replace('../', '');
                // } 
            })).pipe(gulp.dest(TEMP_TARGET_FOLDER))]);
});