将TypeScript与tsconfig.json文件一起使用时,是否可以包含json文件?

时间:2017-02-23 16:35:13

标签: json typescript

有没有办法让TypeScript编译器还复制那些没有ts或tsx扩展名的内容文件到输出目录?

例如,我的tsconfig.json看起来像:

{
    "compilerOptions": {
        "module": "commonjs",
        "target": "es6",
        "noImplicitAny": false,
        "sourceMap": true,
        "outDir": "../../dist",
        "types": [
        ]
    },
    "include": [
        "file1.ts",
        "config.json"
    ],
    "exclude": [
        "../../node_modules"
    ]
}

我希望config.json最终出现在我的../../dist目录中,但这并没有发生。 TypeScript没有内容文件的概念吗?

4 个答案:

答案 0 :(得分:20)

这可以通过在编译器选项中设置"resolveJsonModule": true并将"source-path/**/*.json"添加到include中的tsconfig.json数组中来实现

答案 1 :(得分:5)

不,tsc命令的工作只是编译.ts文件。它没有能力执行与gulpgruntwebpack等构建系统相关的构建相关任务。

有关详细信息,请参阅此类似问题:Angular 2 + Typescript compiler copy html and css files

答案 2 :(得分:2)

One workaround is to make the json file a normal js file, require/import it normally, and add "allowJs" : true to "compilerOptions" in tsconfig.json.

答案 3 :(得分:2)

我遇到了同样的问题,解决方案是添加:

"source-path/**/*.json"

保持在“包含”数组中:

"source-path/**/*"

示例:

{
  "compilerOptions": {
    "module": "commonjs",
    "declaration": true,
    "removeComments": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "allowSyntheticDefaultImports": true,
    "target": "es2017",
    "sourceMap": true,
    "outDir": "./dist",
    "baseUrl": "./",
    "resolveJsonModule": true,
    "incremental": true
  },
  "include":[ 
    "src/**/*",
    "src/**/*.json",
  ],
}