diff --git a/README.md b/README.md index 4a8ffa5b..fba5009c 100644 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ The plugin inherits all compiler options and file lists from your `tsconfig.json * `noEmit`: false * `inlineSourceMap`: false (see [#71](https://github.com/ezolenko/rollup-plugin-typescript2/issues/71)) * `outDir`: `./placeholder` in cache root, see [83](https://github.com/ezolenko/rollup-plugin-typescript2/issues/83) and [Microsoft/TypeScript/issues/24715](https://github.com/Microsoft/TypeScript/issues/24715) -* `declarationDir`: `process.cwd()` (*only if `useTsconfigDeclarationDir` is false in the plugin options*) +* `declarationDir`: Rollup's `output.file` or `output.dir` (*only if `useTsconfigDeclarationDir` is false in the plugin options*) * `moduleResolution`: `node` (*`classic` is [deprecated](https://www.typescriptlang.org/docs/handbook/module-resolution.html). It also breaks this plugin, see [#12](https://github.com/ezolenko/rollup-plugin-typescript2/issues/12) and [#14](https://github.com/ezolenko/rollup-plugin-typescript2/issues/14)*) * `allowNonTsExtensions`: true to let other plugins on the chain generate typescript, update plugin's include filter to pick them up (see [#111](https://github.com/ezolenko/rollup-plugin-typescript2/issues/111)) diff --git a/src/get-options-overrides.ts b/src/get-options-overrides.ts index 9f39ccc4..0d7a579c 100644 --- a/src/get-options-overrides.ts +++ b/src/get-options-overrides.ts @@ -6,7 +6,7 @@ import * as _ from "lodash"; import { join } from "path"; import { IContext } from "./context"; -export function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot, cwd }: IOptions, preParsedTsconfig?: tsTypes.ParsedCommandLine): tsTypes.CompilerOptions +export function getOptionsOverrides({ cacheRoot }: IOptions, preParsedTsconfig?: tsTypes.ParsedCommandLine): tsTypes.CompilerOptions { const overrides: tsTypes.CompilerOptions = { noEmitHelpers: false, @@ -27,8 +27,6 @@ export function getOptionsOverrides({ useTsconfigDeclarationDir, cacheRoot, cwd const declaration = preParsedTsconfig.options.declaration; if (!declaration) overrides.declarationDir = undefined; - if (declaration && !useTsconfigDeclarationDir) - overrides.declarationDir = cwd; // unsetting sourceRoot if sourceMap is not enabled (in case original tsconfig had inlineSourceMap set that is being unset and would cause TS5051) const sourceMap = preParsedTsconfig.options.sourceMap; diff --git a/src/index.ts b/src/index.ts index 1fa12cd5..a45e8441 100644 --- a/src/index.ts +++ b/src/index.ts @@ -12,7 +12,7 @@ import { parseTsConfig } from "./parse-tsconfig"; import { printDiagnostics } from "./print-diagnostics"; import { TSLIB, TSLIB_VIRTUAL, tslibSource, tslibVersion } from "./tslib"; import { blue, red, yellow, green } from "colors/safe"; -import { relative } from "path"; +import { relative, dirname } from "path"; import { normalize } from "./normalize"; import { satisfies } from "semver"; import findCacheDir from "find-cache-dir"; @@ -326,6 +326,11 @@ const typescript: PluginImpl = (options) => if (!parsedConfig.options.declaration) return; + if (!pluginOptions.useTsconfigDeclarationDir) + parsedConfig.options.declarationDir = _output.file + ? dirname(_output.file) + : _output.dir; + _.each(parsedConfig.fileNames, (name) => { const key = normalize(name);