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

Bri*_*nga 21 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"
    ]
}
Run Code Online (Sandbox Code Playgroud)

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

Aru*_*ddy 57

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

  • 我的 `"include"` 属性中有 `"source-path/**/*"`,但它不起作用。正如 [官方 tsconfig.json 文档](https://www.typescriptlang.org/docs/handbook/tsconfig-json.html) 所说:`如果 glob 模式的一段仅包含 * 或 .*,则只有文件包含支持的扩展名(例如,默认情况下为 .ts、.tsx 和 .d.ts,如果 allowJs 设置为 true,则默认为 .js 和 .jsx)。` (4认同)
  • 请注意,`"resolveJsonModule": true`仅复制`导入`的json文件。它不会复制_所有_ json 文件或“必需”的 json 文件。 (2认同)

小智 16

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

“源路径/**/*.json”

保留在“includes”数组中:

“源路径/**/*”

例子:

{
  "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",
  ],
}
Run Code Online (Sandbox Code Playgroud)