📑
tsconfig.jsonの最終的な構成をtsconfckを使って確認する
typescriptのプロジェクトを触っていると、tsconfigが最終的にどのような構成になるか確認したい時があります。現状だと、typesciptのパッケージでは確認するためのAPIは用意されていません。
viteでは、tsconfck
というプロジェクトを利用して最終的なtsconfig.jsonの最終的な構成を取得していましたので、触ってみます。
以下のようなtsconfigファイルを用意して、jsから parseNative
を実行する。
{
"compilerOptions": {
"target": "esnext",
"module": "commonjs",
"baseUrl": "src",
"declaration": true,
"outDir": "./dist/",
"esModuleInterop": true,
"forceConsistentCasingInFileNames": true,
"strict": true,
"skipLibCheck": true
},
"exclude": ["node_modules", "example/*", "dist/*"]
}
import { parseNative } from 'tsconfck';
export const main = async () => {
const tsConfigFile= await parseNative('index.ts');
console.log('tsConfigFile :>> ', tsConfigFile);
};
main();
最終的な構成ファイルをオブジェクトで取得できます。
typescriptのコードの以下で出力される結果と同様の結果を得ることができます。
tsConfigFile :>> {
tsconfigFile: '/Users/j1ingzoue/projects/tsconfck/tsconfig.json',
tsconfig: {
compilerOptions: {
target: 'latest',
module: 'commonjs',
baseUrl: '/Users/j1ingzoue/projects/tsconfck/src',
declaration: true,
outDir: '/Users/j1ingzoue/projects/tsconfck/dist',
esModuleInterop: true,
forceConsistentCasingInFileNames: true,
strict: true,
skipLibCheck: true
},
exclude: [ 'node_modules', 'example/*', 'dist/*' ]
},
result: {
options: {
target: 99,
module: 1,
baseUrl: '/Users/j1ingzoue/projects/tsconfck/src',
declaration: true,
outDir: '/Users/j1ingzoue/projects/tsconfck/dist',
esModuleInterop: true,
forceConsistentCasingInFileNames: true,
strict: true,
skipLibCheck: true,
configFilePath: '/Users/j1ingzoue/projects/tsconfck/tsconfig.json'
},
watchOptions: undefined,
fileNames: [ '/Users/j1ingzoue/projects/tsconfck/index.ts' ],
projectReferences: undefined,
typeAcquisition: { enable: false, include: [], exclude: [] },
raw: {
compilerOptions: [Object],
exclude: [Array],
compileOnSave: false
},
errors: [],
wildcardDirectories: { '/users/j1ingzoue/projects/tsconfck': 1 },
compileOnSave: false
}
}
Discussion