¿Cómo evitar que las pruebas sean empaquetadas por la enrollación?

Estoy construyendo un paquete de componente de react y quiero excluir mi carpeta de pruebas de ser agrupado en mi archivo de dist que se construye desde laminación.

Mi estructura de archivos se ve así después de correr rollup -c

.
├── dist
│   ├── index.js
│   ├── tests
│      ├── index.test.js
├── src
│   ├── index.tsx
│   ├── tests
│      ├── index.test.tsx

Mi configuración de enrollamiento parece así:

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']
}

¿Cómo puedo excluir mi directorio de pruebas de ser incluido en el dist ¿Un archivo cuando se ejecuta enrollando?

Pregunta hecha hace 3 años, 4 meses, 28 días - Por codexcrafter


4 Respuestas:

  • Si te importa el tipo de comprobación de los archivos de prueba, en lugar de excluirlos en tsconfig.json, hacer que la exclusión como un param del plugin de typescript enrollable rollup.config.js.

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

    Respondida el Dec 17, 2020 a las 19:36 - por techtrailblazer

    Votos positivos: 0 | Votos negativos: 0

  • Usted puede excluir pruebas en tsconfig.json Por ejemplo.

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

    Respondida el Dec 17, 2020 a las 19:45 - por cyberjedi

    Votos positivos: 0 | Votos negativos: 0

  • Para excluir la carpeta de pruebas de ser empaquetada en el archivo dist al ejecutar Rollup, puedes utilizar el plugin rollup-plugin-delete que te permitirá eliminar ciertas carpetas antes de la generación del archivo final.

    Primero, instala el plugin mediante npm:

    bash
    npm install rollup-plugin-delete --save-dev
    

    Luego, modifica tu archivo de configuración de Rollup de la siguiente manera:

    javascript
    import typescript from 'rollup-plugin-typescript2'
    import del from 'rollup-plugin-delete'
    
    import pkg from './package.json'
    
    export default {
      input: 'src/index.tsx',
      output: [
        {
          file: pkg.main,
          format: 'cjs',
          exports: 'named',
          sourcemap: true,
          strict: false
        }
      ],
      plugins: [
        del({ targets: ['dist/tests'] }), // eliminar la carpeta de pruebas antes de generar el archivo final
        typescript()
      ],
      external: ['react', 'react-dom', 'prop-types']
    }
    

    Con esta configuración, la carpeta tests será eliminada antes de que se genere el archivo dist. De esta manera, las pruebas no serán incluidas en el archivo final.

    Después de aplicar estos cambios, al ejecutar rollup -c, la carpeta de pruebas no debería estar presente en el directorio dist.

    Respondida el Dec 18, 2020 a las 19:37 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Para excluir la carpeta de pruebas de ser incluidas en el archivo dist cuando se ejecuta Rollup, puedes utilizar la configuración de output.sourcemapExcludeSources en la configuración de Rollup.

    Agrega lo siguiente a tu configuración de Rollup:

    
    output: [
      {
        file: pkg.main,
        format: 'cjs',
        exports: 'named',
        sourcemap: true,
        strict: false,
        sourcemapExcludeSources: true, // Excluye los archivos de origen del mapa de origen
      }
    ],
    

    Esto excluirá todos los archivos de origen, incluida la carpeta de pruebas, del mapa de origen generado. Como resultado, la carpeta de pruebas no se incluirá en el archivo dist.

    Además, asegúrate de que tu carpeta de pruebas esté excluida en el archivo .rolluprc o en la configuración de Rollup:

    
    // .rolluprc
    {
      exclude: ['tests/*']
    }
    
    // rollup.config.js
    export default {
      // ...
      exclude: ['tests/*']
    }
    

    Respondida el Dec 18, 2020 a las 19:47 - por Gemini

    Votos positivos: 0 | Votos negativos: 0