Rollup 不捆绑声明文件

Seb*_*sen 6 build node.js typescript rollupjs

我正在尝试构建一个用 TypeScript 制作的库。我pathstsconfig.json.

我的tsconfig.json看起来像这样:

{
  "compilerOptions": {
    "module": "es2015",
    "moduleResolution": "node",
    "target": "es2015",
    "noImplicitAny": true,
    "removeComments": true,
    "preserveConstEnums": true,
    "experimentalDecorators": true,
    "sourceMap": true,
    "lib": [
      "esnext",
      "dom"
    ],
    "strict": true,
    "sourceRoot": "./src",
    "rootDir": "./src",
    "outDir": "build",
    "declaration": true,
    "declarationDir": "build",
    "baseUrl": "./src",
    "noUnusedLocals": true,
    "paths": {
      "modules/*": [
        "modules/*"
      ],
      "common/*": [
        "common/*"
      ]
    }
  },
  "exclude": [
    "node_modules",
    "build"
  ]
}
Run Code Online (Sandbox Code Playgroud)

我的汇总配置如下所示:

import typescript from 'rollup-plugin-typescript2'

export default {
  entry: "./src/index.ts",
  output: {
    file: './build/index.js',
    format: 'cjs'
  },
  plugins: [
    typescript({ typescript: require("typescript"), declaration: true, clean: true })
  ]
}
Run Code Online (Sandbox Code Playgroud)

但是,当我使用 构建时rollup -c,它会在我的构建文件夹中创建它:

在此处输入图片说明

index.js 捆绑得很好,但这里的声明文件只是从/common文件夹中导入,该文件夹基本上包含目录中的所有其他文件夹,src但每个文件夹只有一个声明文件,此外,这些文件尝试使用的paths别名,而不是建有相对进口,所以他们不工作。

我如何告诉 rollup 构建单个声明文件而不是这个?

Ami*_*adi 1

rollup-plugin-typescript保留声明文件的文件夹结构。要捆绑声明,您也应该使用rollup-plugin-tshttps://github.com/wessberg/rollup-plugin-ts