Rollup 分别编译模块 typescript 声明和 javascript 文件

Rollup compiling module typescript declarations and javascript files separately

Rollup 在单独的区域编译模块声明,而 javascript 保存在 npm 包的另一个区域。

rollup.config.js

import Ts from 'rollup-plugin-typescript2';
import image from '@rollup/plugin-image';

export default {
  input: [
    'src/index.ts',
    'src/atoms/Button/index.ts',
  ],
  output: {
    dir: 'lib',
    format: 'esm',
    sourcemap: true,
  },
  plugins: [Ts(), image()],
  preserveModules: true,
  external: [
    'react',
  ],
};

捆绑后的 lib 文件夹如下所示

lib
|__atoms
|____Button
|______Button.d.ts
|______index.d.ts
|__packages
|____react
|______src
|________atoms
|__________Button
|____________Button.js
|____________Button.js.map
|____________index.js
|____________index.js.map

正如您在按钮示例中看到的那样,我需要将它们放在一个文件中,因为当我尝试将此文件导入另一个存储库时..

产生的错误是..

Could not find a declaration file for module

If the <PACKAGE> package actually exposes this module, try adding a new declaration (.d.ts) file containing `declare module

如果需要更多项目来回答这个问题,请告诉我。

好的,经过深入挖掘。问题与不将包添加为外部依赖项有关。如果未包含,rollup 将创建一个捆绑的 node_modules 文件夹,其中包含未添加到 external 配置中的包,并尝试在该文件夹之上创建一个目录,使用捆绑了 javascript.

输出结构

lib
|__node_modules
|____<PACKAGE_BEING_USED_IN_FILES>

rollup.config.js

external: [
  'react',
  '<PACKAGE_BEING_USED_IN_FILES>',
],

通过正确添加我所有的外部依赖项。我能够解决此错误。

棘手的部分是 rollup,没有给出关于这种特定依赖关系的警告.. 这有点让我陷入循环。