代码之家  ›  专栏  ›  技术社区  ›  user3690467

汇总-重新导出通配符不使用默认值

  •  0
  • user3690467  · 技术社区  · 6 年前

    我有一个文件 src/Button/Button.tsx :

    export default function Button(){}
    export interface ButtonProps {}
    

    我正在重新导出一个文件中的所有导出 src/Button/index.ts :

    export * from './Button'; //i.e src/Button/Button.tsx
    

    在我的条目文件中,我正在重新导出所有内容,包括此特定组件:

    export { ButtonProps, default as Button } from './Button'; //i.e src/Button/index.ts
    

    但是,当使用rollup运行umd构建时,我在上面的行中得到一个错误:

    src/index.ts → dist/comp-framework.js...
    [!] Error: 'default' is not exported by src\Button\index.ts
    https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module-
    src\index.ts (1:22)
    1: export { ButtonProps, default as Button } from './Button';
    
    Error: 'default' is not exported by src\Button\index.ts
    

    这很奇怪因为跑步 tsc 工作非常好。所以这肯定是rollup或typescript插件的问题。我的汇总配置(我已删除除ts以外的所有其他插件以缩小问题范围):

    import typescript from 'rollup-plugin-typescript2';
    
    const input = 'src/index.ts';
    const globals = {
      react: 'React',
      'react-dom': 'ReactDOM',
    };
    const tsOverrides = {
      compilerOptions: {
        module: 'es2015',
        declaration: false,
      }
    };
    
    export default [
      {
        input,
        output: {
          file: 'dist/comp-framework.js',
          format: 'umd',
          name: 'CompFramework',
          globals
        },
        external: Object.keys(globals),
        plugins: [
          typescript({ typescript: require('typescript'), tsconfigOverride: tsOverrides, rollupCommonJSResolveHack: true }),
        ]
      },
      {
        input,
        output: {
          file: 'dist/comp-framework.min.js',
          format: 'umd',
          name: 'CompFramework',
          globals
        },
        external: Object.keys(globals),
        plugins: [
          typescript({ typescript: require('typescript'), tsconfigOverride: tsOverrides, rollupCommonJSResolveHack: true }),
        ]
      }
    ]
    

    编辑: example on the REPL

    0 回复  |  直到 6 年前