Home > Software design >  what is this rimraf argument --tsconfig about
what is this rimraf argument --tsconfig about

Time:10-13

I'm new to Node and In this package.json for React Typescript project I understand what rimraf does but what is the --tsconfig doing at the end?

When I run the prebuild script I see that the file typedoc.json is deleted. But why this --tsconfig? There is a tsconfig.json file but I can’t see that rimraf is doing anything

"scripts": {
    "build": "tsdx build --transpileOnly --entry ./src/index.js",
    "prebuild": "npm run docs",
    "prepublishOnly": "npm run build",
    "docs": "rimraf typedoc.json && typedoc --tsconfig",
    "lint": "eslint . --ext .js,.jsx,.ts,.tsx"
},

The source for this code is notistack package.json

CodePudding user response:

Firstly, rimraf will not do anything to the tsconfig.json file. It’s important to understand that the docs script in the package.json file, i.e. this part;

"docs": "rimraf typedoc.json && typedoc --tsconfig",

consists of two separate commands and together they are referred to as a "compound command".

The typedoc --tsconfig part is the second command and it’s not part of the rimraf command because it’s on the right-hand side of the && operator. The --tsconfig part is actually an argument for the typedoc command (...it is not an argument for the rimraf command).

Essentially the typedoc command and its associated --tsconfig argument, that is on the right-hand side of the && operator, is only invoked if the command on the left-hand side of it, (i.e. the first command rimraf typedoc.json), completes successfully with a zero exit code.

The typedoc command is what generates documentation for TypeScript projects.

The --tsconfig argument for thé typedoc command is described as follows in the documentation

--tsconfig <path/to/tsconfig.json>

Specify a typescript config file that should be loaded. If not specified TypeDoc will look for 'tsconfig.json' in the current directory.

Note: In your usage of the --tsconfig argument it doesn’t specify a custom filepath to the tsconfig.json file, therefore it utilizes the one in the current directory.

  • Related