разница между rootDir и baseUrl в tsconfig

#typescript

#typescript

Вопрос:

В чем разница между rootDir и baseUrl в tyescript?

Согласно документам ts

Базовый URL

 Base directory to resolve non-relative module names. See Module Resolution documentation for more details.
  

И rootDir

 Specifies the root directory of input files. Only use to control the output directory structure with --outDir.
  

В моем tsconfig я добавил
«baseUrl»: «приложение / javascript /src»,

и ничего не добавили для

 rootDir
  

Это правильно? (это работает, но я не уверен, правильно это или нет)

Обновление: rootDir выдает ошибку, поскольку я использую абсолютные пути

Это мой tsconfig. (baseUrl этого не делает)

 {
  "compilerOptions": {
    "declaration": false,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "lib": [
      "es6",
      "dom"
    ],
    "module": "es6",
    "moduleResolution": "node",
    "sourceMap": true,
    "jsx": "react",
    "target": "es5",
    "allowSyntheticDefaultImports": true,
    "baseUrl": "app/javascript/src",
    "forceConsistentCasingInFileNames": true,
    "resolveJsonModule": true,
    "isolatedModules": true,
    "skipLibCheck": true,
    "allowJs": true,
    "strict": true,
    "outDir": "app/javascript/.dist",
  },
  "exclude": [
    "node_modules",
    "**/*.js",
    "**/.jsx"
  ],
  "include": [
    "**/*.ts",
    "**/*.tsx"
  ],
  "compileOnSave": false
}
  

В webpack я разрешаю пути, подобные этому

   resolved_paths: ['app/javascript/src', 'app/javascript']
  

Ответ №1:

Я добавил «baseUrl»: «app / javascript / src», это правильно?

Нет. Если вы указываете включаемые файлы для своего проекта (как указано src ), вы должны использовать rootDir (как упоминалось Specifies the root directory of input files. ).

Причина, по которой вы не получаете сообщение об ошибке

baseUrl вступает в силу только для не относительного импорта. Ваш код в основном имеет относительный импорт, например, import something from './something' поэтому он не оказывает на вас никакого негативного эффекта.