Ninja Parading Musically

    rollup-plugin-dts
    TypeScript icon, indicating that this package has built-in type declarations

    5.1.1 • Public • Published

    rollup-plugin-dts

    Build Status Coverage Status

    This is a plugin that lets you roll-up your .d.ts definition files.

    Usage

    Install the package from npm:

    $ npm install --save-dev rollup-plugin-dts
    

    Add it to your rollup.config.js:

    import dts from "rollup-plugin-dts";
    
    const config = [
      // …
      {
        input: "./my-input/index.d.ts",
        output: [{ file: "dist/my-library.d.ts", format: "es" }],
        plugins: [dts()],
      },
    ];
    
    export default config;

    And then instruct typescript where to find your definitions inside your package.json:

      "types": "dist/my-library.d.ts",

    NOTE that the plugin will automatically mark any external library (@types for example) as external, so those will be excluded from bundling.

    What to expect

    While this plugin is fairly complete, it does not support all imaginable use-cases. In particular, the plugin works best with already existing .d.ts files generated by the typescript compiler from idiomatic code.

    Working with .ts(x) or even .js(x) (when setting allowJs: true) does work, but is not recommended.

    The plugin does its own import resolution through the typescript compiler, and usage together with other resolution plugins, such as node-resolve can lead to errors and is not recommended.

    All external dependencies from node_modules are automatically excluded from bundling. This can be overridden using the respectExternal setting, but it is generally not recommended. While rollup of external @types generally works, it is not recommended.

    Why?

    Well, ideally TypeScript should just do all this itself, and it even has a proposal to do that. But there hasn’t been any progress in ~3 years.

    Some projects, like rollup itself go the route of completely separating their public interfaces in a separate file.

    Alternatives

    See some discussions about some of these projects and their tradeoffs.

    How does it work

    License

    The code is licensed under the copyleft LGPL-3.0. I have no intention to license this under any non-copyleft license.

    Install

    npm i rollup-plugin-dts

    DownloadsWeekly Downloads

    240,302

    Version

    5.1.1

    License

    LGPL-3.0

    Unpacked Size

    182 kB

    Total Files

    7

    Last publish

    Collaborators

    • swatinem