如何防止测试被汇总捆绑?

How to prevent tests being bundled by rollup?

我正在构建一个 React 组件包,并希望将我的测试文件夹排除在从 rollup 构建的 dist 文件中。

我的文件结构在 运行 rollup -c

之后是这样的
.
├── dist
│   ├── index.js
│   ├── tests
│      ├── index.test.js
├── src
│   ├── index.tsx
│   ├── tests
│      ├── index.test.tsx

我的汇总配置如下所示:

import typescript from 'rollup-plugin-typescript2'

import pkg from './package.json'

export default {
  input: 'src/index.tsx',
  output: [
    {
      file: pkg.main,
      format: 'cjs',
      exports: 'named',
      sourcemap: true,
      strict: false
    }
  ],
  plugins: [typescript()],
  external: ['react', 'react-dom', 'prop-types']
}

如何在运行汇总时排除我的测试目录被捆绑到 dist 文件中?

您可以排除 tsconfig.json 中的测试,例如

"exclude": [
    "**/tests",
    "**/*.test.js",
  ]

如果您不关心测试文件的类型检查,那么接受的答案是可行的。如果这样做,不要在 tsconfig.json 中排除它们,而是将该排除作为 rollup.config.js.

中汇总打字稿插件的参数
plugins: [
  /* for @rollup/plugin-typescript */
  typescript({
    exclude: ["**/__tests__", "**/*.test.ts"]
  })

  /* or for rollup-plugin-typescript2 */
  typescript({
    tsconfigOverride: {
      exclude: ["**/__tests__", "**/*.test.ts"]
    }

  })
]