有没有办法让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没有内容文件的概念吗?
答案 0 :(得分:20)
这可以通过在编译器选项中设置"resolveJsonModule": true
并将"source-path/**/*.json"
添加到include
中的tsconfig.json
数组中来实现
答案 1 :(得分:5)
不,tsc
命令的工作只是编译.ts文件。它没有能力执行与gulp,grunt或webpack等构建系统相关的构建相关任务。
有关详细信息,请参阅此类似问题: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",
],
}