Rollup-plugin-typescript2: Compilación muy lenta con TS v3.4

Creado en 9 abr. 2019  ·  21Comentarios  ·  Fuente: ezolenko/rollup-plugin-typescript2

Que pasa y por que esta mal

Una vez que actualicé TS a v3.4.2, el tiempo de compilación es muy lento. Con TS v3.3 mi proyecto se construyó en ~ 20s y con TS v3.4 tarda ~ 5mn.

Intenté con clean: true , intenté agregar typescript: require('typescript') , intenté actualizar rollup y todos los complementos relacionados ... Cada vez, el mismo resultado, la compilación lleva mucho tiempo .

Nota: cuando ejecuto tsc -p tsconfig.prod.json directamente, toma menos de 10 segundos generar el dist.

Ambiente

Versiones

  • mecanografiado: v3.4.2
  • resumen: v1.6.0
  • rollup-plugin-typescript2: v0.19.2

rollup.config.js

  {
    input: 'src/index.ts',
    output: [
      { file: pkg.main, format: 'cjs' },
      { file: pkg.module, format: 'es' },
    ],
    plugins: [
      external({ includeDependencies: true }),
      resolve(),
      typescript({
        tsconfig: './tsconfig.prod.json',
        rollupCommonJSResolveHack: true,
      }),
      commonjs(),
      filesize(),
    ],
  }

tsconfig.json


tsconfig.json

{
  "compilerOptions": {
    "module": "esnext",
    "target": "es5",
    "jsx": "react",
    "esModuleInterop": true,
    "lib": ["dom", "es2017"],
    "moduleResolution": "node",
    "rootDir": "src",
    "forceConsistentCasingInFileNames": true,
    "noImplicitReturns": true,
    "noImplicitThis": true,
    "noImplicitAny": true,
    "strictNullChecks": true,
    "suppressImplicitAnyIndexErrors": true,
    "noUnusedLocals": false,
    "downlevelIteration": true
  },
  "include": ["src/**/*", "types/**/*"]
}


tsconfig.prod.json

{
  "extends": "./tsconfig.json",
  "compilerOptions": {
    "outDir": "./dist",
    "noUnusedLocals": true,
    "sourceMap": true,
    "declaration": true
  },
  "exclude": ["src/doc", "**/stories.tsx", "**/test.tsx", "**/fixture.ts"]
}

package.json

    "rollup": "^1.6.0",
    "rollup-plugin-commonjs": "^9.2.1",
    "rollup-plugin-filesize": "^6.0.1",
    "rollup-plugin-node-resolve": "^4.0.1",
    "rollup-plugin-peer-deps-external": "^2.2.0",
    "rollup-plugin-typescript2": "^0.19.2",
    "typescript": "^3.4.2"

salida del complemento con verbosidad 3


Producción

rpt2: typescript version: 3.4.2
rpt2: tslib version: 1.9.3
rpt2: rollup-plugin-typescript2 version: 0.19.2
rpt2: plugin options:
{
    "tsconfig": "./tsconfig.prod.json",
    "rollupCommonJSResolveHack": true,
    "clean": true,
    "verbosity": 3,
    "typescript": "version 3.4.2",
    "check": true,
    "cacheRoot": "/Users/yannpringault/git/PayFit/components/.rpt2_cache",
    "include": [
        "*.ts+(|x)",
        "**/*.ts+(|x)"
    ],
    "exclude": [
        "*.d.ts",
        "**/*.d.ts"
    ],
    "abortOnError": true,
    "useTsconfigDeclarationDir": false,
    "tsconfigOverride": {},
    "transformers": [],
    "tsconfigDefaults": {},
    "objectHashIgnoreUnknownHack": false
}
rpt2: rollup config:
{
    "chunkGroupingSize": 5000,
    "experimentalCacheExpiry": 10,
    "inlineDynamicImports": false,
    "input": "src/index.ts",
    "perf": false,
    "plugins": [
        {
            "name": "peer-deps-external"
        },
        {
            "name": "node-resolve"
        },
        {
            "name": "rpt2"
        },
        {
            "name": "commonjs"
        },
        {
            "name": "filesize"
        }
    ]
}
rpt2: built-in options overrides: {
    "noEmitHelpers": false,
    "importHelpers": true,
    "noResolve": false,
    "noEmit": false,
    "inlineSourceMap": false,
    "outDir": "/Users/yannpringault/git/PayFit/components/.rpt2_cache/placeholder",
    "moduleResolution": 2,
    "allowNonTsExtensions": true,
    "declarationDir": "/Users/yannpringault/git/PayFit/components"
}
rpt2: parsed tsconfig: {
    "options": {
        "module": 6,
        "target": 1,
        "jsx": 2,
        "esModuleInterop": true,
        "lib": [
            "lib.dom.d.ts",
            "lib.es2017.d.ts"
        ],
        "moduleResolution": 2,
        "rootDir": "/Users/yannpringault/git/PayFit/components/src",
        "forceConsistentCasingInFileNames": true,
        "noImplicitReturns": true,
        "noImplicitThis": true,
        "noImplicitAny": true,
        "strictNullChecks": true,
        "suppressImplicitAnyIndexErrors": true,
        "noUnusedLocals": true,
        "downlevelIteration": true,
        "outDir": "/Users/yannpringault/git/PayFit/components/.rpt2_cache/placeholder",
        "sourceMap": true,
        "declaration": true,
        "configFilePath": "/Users/yannpringault/git/PayFit/components/./tsconfig.prod.json",
        "noEmitHelpers": false,
        "importHelpers": true,
        "noResolve": false,
        "noEmit": false,
        "inlineSourceMap": false,
        "allowNonTsExtensions": true,
        "declarationDir": "/Users/yannpringault/git/PayFit/components"
    },
    "fileNames": [
        "/Users/yannpringault/git/PayFit/components/src/index.ts",
        "/Users/yannpringault/git/PayFit/components/src/components/index.ts",
        "/Users/yannpringault/git/PayFit/components/src/components/Alert/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Alert/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Avatar/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Avatar/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/AvatarGroup/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/AvatarGroup/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Badge/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Badge/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Button/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Button/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Checkbox/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Checkbox/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/CheckboxGroup/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/CheckboxGroup/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/DatePicker/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/DatePicker/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/DatePicker/Popin/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Dropdown/MenuContext.ts",
        "/Users/yannpringault/git/PayFit/components/src/components/Dropdown/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Dropdown/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Dropdown/DropdownItem/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Dropdown/DropdownItem/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Field/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Field/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Icon/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Icon/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Input/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Input/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Layout/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Legend/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Legend/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Loader/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Loader/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/ProgressBar/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/ProgressBar/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/ProgressCircle/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/ProgressCircle/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/RadioGroup/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/RadioGroup/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Select/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Select/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Steps/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Steps/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Table/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Table/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Table/components/Body.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Table/components/Cell.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Table/components/Footer.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Table/components/Header.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Table/components/HeaderCell.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Table/components/HeaderRow.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Table/components/Limit.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Table/components/Row.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/TableGroup/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/TableGroup/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Tag/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Tag/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Text/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Toggle/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Toggle/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Tooltip/index.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/Tooltip/style.tsx",
        "/Users/yannpringault/git/PayFit/components/src/components/_helpers/colors.test.ts",
        "/Users/yannpringault/git/PayFit/components/src/components/_helpers/colors.ts",
        "/Users/yannpringault/git/PayFit/components/src/components/_helpers/react.ts",
        "/Users/yannpringault/git/PayFit/components/src/components/_helpers/string.test.ts",
        "/Users/yannpringault/git/PayFit/components/src/components/_helpers/string.ts",
        "/Users/yannpringault/git/PayFit/components/src/primitives/_helpers.tsx",
        "/Users/yannpringault/git/PayFit/components/src/primitives/box.tsx",
        "/Users/yannpringault/git/PayFit/components/src/primitives/text.tsx",
        "/Users/yannpringault/git/PayFit/components/src/utils/index.ts",
        "/Users/yannpringault/git/PayFit/components/src/utils/colors/index.ts",
        "/Users/yannpringault/git/PayFit/components/src/utils/shadows/index.ts",
        "/Users/yannpringault/git/PayFit/components/src/utils/shadows/test.ts",
        "/Users/yannpringault/git/PayFit/components/src/utils/zIndex/index.ts",
        "/Users/yannpringault/git/PayFit/components/types/index.d.ts",
        "/Users/yannpringault/git/PayFit/components/types/modules.d.ts"
    ],
    "typeAcquisition": {
        "enable": false,
        "include": [],
        "exclude": []
    },
    "raw": {
        "extends": "./tsconfig.json",
        "compilerOptions": {
            "outDir": "./dist",
            "noUnusedLocals": true,
            "sourceMap": true,
            "declaration": true
        },
        "exclude": [
            "src/doc",
            "**/stories.tsx",
            "**/test.tsx",
            "**/fixture.ts"
        ],
        "compileOnSave": false,
        "include": [
            "src/**/*",
            "types/**/*"
        ]
    },
    "errors": [],
    "wildcardDirectories": {
        "/users/yannpringault/git/payfit/components/src": 1,
        "/users/yannpringault/git/payfit/components/types": 1
    },
    "compileOnSave": false,
    "configFileSpecs": {
        "includeSpecs": [
            "src/**/*",
            "types/**/*"
        ],
        "excludeSpecs": [
            "src/doc",
            "**/stories.tsx",
            "**/test.tsx",
            "**/fixture.ts"
        ],
        "validatedIncludeSpecs": [
            "src/**/*",
            "types/**/*"
        ],
        "validatedExcludeSpecs": [
            "src/doc",
            "**/stories.tsx",
            "**/test.tsx",
            "**/fixture.ts"
        ],
        "wildcardDirectories": {
            "/users/yannpringault/git/payfit/components/src": 1,
            "/users/yannpringault/git/payfit/components/types": 1
        }
    }
}
rpt2: included:
'[
    "*.ts+(|x)",
    "**/*.ts+(|x)"
]'
rpt2: excluded:
'[
    "*.d.ts",
    "**/*.d.ts"
]'

blocked help wanted

Comentario más útil

@ezolenko ¡ Perdón por la respuesta tardía!

Puse clean: true y actualicé rtp2 a 0.20.1 . Aquí están los resultados:

TS 3.3.3333

build -> 18s
tsc   -> 14.39s

TS 3.3.4000

build -> 17.3s
tsc   -> 14.39s

TS 3.4.1

build -> 5m 25.1s
tsc   -> 21.26s

TS 3.4.3

build -> 5m 52.7s
tsc   -> 21.57s

Además, existe este problema en el repositorio de TS que parece estar relacionado, pero tengo @types/styled-components anclado a v4.1.4 por lo que no cubre mi caso.

Avísame si necesitas más información.


Por diversión, también probé la última compilación 3.5 :

TS 3.5.0-dev.20190413

build -> 1m 23.5s
tsc   -> 18.84s

Todos 21 comentarios

Tengo el mismo problema. Pasó de 24s a 345s al pasar TS de 3.3.4000 a 3.4.3

Traté de reproducir y al principio vi una desaceleración, pero usando clean: true y yendo y viniendo entre versiones mecanografiadas varias veces, no veo la diferencia en la compilación limpia ahora ...

¿Podría configurar clean: true , actualizar rtp2 al último (0.20.1 o maestro) y programar una compilación varias veces seguidas en ts 3.3 y ts 3.4?

@ezolenko ¡ Perdón por la respuesta tardía!

Puse clean: true y actualicé rtp2 a 0.20.1 . Aquí están los resultados:

TS 3.3.3333

build -> 18s
tsc   -> 14.39s

TS 3.3.4000

build -> 17.3s
tsc   -> 14.39s

TS 3.4.1

build -> 5m 25.1s
tsc   -> 21.26s

TS 3.4.3

build -> 5m 52.7s
tsc   -> 21.57s

Además, existe este problema en el repositorio de TS que parece estar relacionado, pero tengo @types/styled-components anclado a v4.1.4 por lo que no cubre mi caso.

Avísame si necesitas más información.


Por diversión, también probé la última compilación 3.5 :

TS 3.5.0-dev.20190413

build -> 1m 23.5s
tsc   -> 18.84s

Ese problema que encontró (https://github.com/Microsoft/TypeScript/issues/30663) y el hecho de que 3.5-dev se volvió 5 veces más rápido para usted me hace pensar que hicieron algo con LanguageServer API. Esta es la API que rpt2 usa como parte de la compilación y qué tipo de comprobadores en IDE están usando (es por eso que WebStorm agota el tiempo de espera, etc.).

Es posible que su proyecto esté utilizando estructuras de tipo afectadas en otro lugar, por eso fijar styled-components no ayuda. Y es por eso que no veo una gran desaceleración al construir rpt2, por ejemplo.

Supongo que esperaremos la versión 3.5 final.

por cierto, intente construir con la opción check: false

¿Alguien ha confirmado si esto se solucionó con la versión 3.5?

@ tomasro27 No para mí, ni con 6 ( 3.6.0-dev.20190621 ). Parece que <3.3 sigue siendo el más rápido.

Parece que 3.5 es un poco más rápido, pero aún podría ser mejor

¿Hay alguna actualización sobre esto? ¿Parece que todavía está bloqueado por TS?

Sí, no creo que se pueda hacer nada desde este punto. Cualquiera es bienvenido a intentarlo :)

+1
3.5.3 también es muy lento para nosotros

check: false está funcionando muy bien.

Pero el problema es que no da ningún error de compilación (si usa vscode, mostrará los errores 😄).

Al menos puedo hacer check: false cuando estoy trabajando en CSS (en JS). 👍

@ezolenko , ¿sabe qué llamada de API mecanografiada exacta hace que la compilación se ralentice? :)

@ZainlessBrombie no, todo lo que sé está en este hilo. El problema de mecanografiado que está vinculado probablemente esté relacionado, pero no una causa directa (porque dicen que debería arreglarse en 3.5+, y aparentemente no lo es).

Si tiene compilaciones lentas en su proyecto, verifique si ts 3.3 es realmente más rápido si es posible, tal vez el problema no sea mecanografiado, sino algo más.

OK gracias. Si llego a eso, esta podría ser una pared contra la que estoy dispuesto a golpearme la cabeza, por así decirlo :)

Editar: este problema solo ocurre para archivos que importan componentes con estilo como parece
Además, la documentación de TypeScript es terrible

El mecanografiado de perfiles revela que la fuente del problema son estas uniones extremadamente grandes que tienen los componentes con estilo. El único lugar para solucionar esto es el mecanografiado, a menos que haya una forma de obtener el mecanografiado en la resolución del módulo de la memoria caché (que debería).

En realidad, no estoy usando la memoria caché de resolución del módulo en la llamada nodeModuleNameResolver aquí: https://github.com/ezolenko/rollup-plugin-typescript2/blob/b7c7389dcdf168715669520128ca656d6e940111/src/index.ts#L148

No estoy seguro de si eso hace que los usuarios usen uno predeterminado o no lo usen en absoluto.

Sí, lo vi TODO :)
Desafortunadamente, la depuración de la memoria caché de resolución del módulo cuando se usa muestra que almacena en caché rebass pero no componentes con estilo por alguna razón. Pasa un caché interno para aquellos ...

Actualmente estoy en el proceso de migrar mi base de código C # de mi biblioteca a TypeScript y estoy usando Rollup para empaquetar. (Antes tenía una cadena de herramientas C #> Haxe> JavaScript personalizada). Desafortunadamente, también estoy sufriendo bastante con la velocidad de compilación de mi nueva base de código TypeScript, lo que dificulta bastante el desarrollo.

Si es posible, me complacerá proporcionar algunos informes de perfiles si es posible generarlos.

Aquí algunas ideas para mi proyecto:

Por lo general, estoy usando ttypescript para hacer alguna transformación AST.
Líneas de código : ~ 50000

rollup -c rollup.config.ts : ~ 9-10 segundos
rollup -c rollup.config.ts -w (compilación inicial) : ~ 9-10 segundos
rollup -c rollup.config.ts -w (agregando 1 alerta en 1 archivo TS) : ~ 20 segundos
rollup -c rollup.config.ts -w (eliminando la alerta de nuevo) : ~ 20 segundos

tsc --versión : 3.8.3
tsc --proyecto tsconfig.json : ~ 6-7sec
tsc --project tsconfig.json -w (compilación inicial) : ~ 6-7seg
tsc --project tsconfig.json -w (agregando 1 alerta en 1 archivo TS) : ~ 0.1-0.2sec
tsc --project tsconfig.json -w (eliminando la alerta de nuevo) : ~ 0.1-0.2sec

ttsc --versión : 3.8.3
ttsc --proyecto tsconfig.json : ~ 7-8 segundos
ttsc --project tsconfig.json -w (compilación inicial) : ~ 6-7seg
ttsc --project tsconfig.json -w (agregando 1 alerta en 1 archivo TS) : ~ 0.1-0.2sec
ttsc --project tsconfig.json -w (eliminando la alerta de nuevo) : ~ 0.1-0.2sec

Las compilaciones incrementales están activas en tsconfig.

Me parece bastante inusual que una compilación incremental / de reloj requiera el doble que una compilación completa.

Las cosas parecen volverse locas en mi entorno cuando se trata de realizar pruebas. Conecté el rollup con karma y este complemento de mecanografiado. Como sabrá: cada conjunto de pruebas obtiene su propio paquete, lo que significa que los números anteriores se acumulan. La memoria crece a> 2 GB con el tiempo; incluso después de unos minutos, la prueba de funcionamiento no comienza realmente. Esto sucede en cada npm run test .

Una vez que llega al área "Generando paquete para ..." en la generación de prueba, veo números ridículamente altos:
File01.test.ts que contiene 1 prueba simple de una clase de analizador tarda 15 segundos
File02.test.ts que contiene 11 pruebas de análisis XML necesita 2,5 minutos
File03.test.ts ni siquiera se completó después de 5 minutos.

No tengo ni idea de dónde podría deberse este problema y si realmente se debe al módulo mecanografiado del resumen, pero este parece ser el problema más probable con el que estoy relacionado.

Como mi repositorio es bastante grande y complicado, no compartí más detalles sobre las configuraciones. Si alguien puede orientarme sobre cómo recopilarlos, me complace proporcionar registros / resultados de creación de perfiles, etc. Intentaré configurar un nuevo repositorio independiente simple que refleje la situación general de mi proyecto, pero no puedo prometer que el problema persistirá.

@ Danielku15 Su principal problema es que está migrando desde C # y no desde C ++ :)

Este complemento no utiliza explícitamente las propias compilaciones incrementales de mecanografiado (esto no existía cuando se inició).

Podrías probar @rollup/plugin-typescript (https://github.com/rollup/plugins/tree/master/packages/typescript), creo que usan un enfoque diferente y podrían darte números diferentes.

Otra opción es hacer la compilación de mecanografiado fuera de la cadena de resumen (como un paso previo a la compilación en npm o algo así) y alimentar los js resultantes al resumen. Ver compilación sería interesante, aunque creo que puede iniciar tsc y rollup en modo reloj y si el proyecto está configurado correctamente, simplemente funcionará.

Su principal problema es que está migrando desde C # y no desde C ++

Off-Topic: No estoy seguro de si me gustaría migrar un marco / biblioteca de C ++ a TypeScript. Dependiendo del uso de macros y plantillas (que a los desarrolladores de C ++ tienden a amar), las cosas pueden volverse locas durante la migración 😅 Afortunadamente, mi base de código C # siempre se adaptó a un estilo que permite la compilación cruzada con otros lenguajes, por lo que el resultado es bastante aceptable a partir de una estructura de código . Solo necesito descubrir un poco mejor cómo organizar los módulos para reducir algunos gastos generales. 😊

Este complemento no utiliza explícitamente las propias compilaciones incrementales de mecanografiado (esto no existía cuando se inició).

Esto es interesante, ¿este complemento tiene alguna estrategia de compilación "incremental" personalizada? Esto podría explicar por qué una compilación completamente limpia puede tardar más que un cambio de fuente cuando se usa el reloj. La compilación de mecanografiado es más o menos estable, es lamentable que este complemento no pueda utilizar las actualizaciones incrementales todavía, pero creo que el tiempo empleado en el compilador de scripts de tipo es estable. Pero el tiempo dedicado a la recopilación parece variar. Solo esto me explica que una compilación limpia es más rápida que un cambio de código con el modo reloj.

Podrías probar @ rollup / plugin-typescript ...

Gracias por la pista, lo intentaré para ver si mejora.

Otra opción es hacer una compilación de mecanografiado fuera de la cadena de resumen.

Tenía una configuración de este tipo al principio, pero la dejé a la mitad para tener compilaciones de "observación" durante el desarrollo. Lo intentaré de nuevo si puedo conectar una tubería con las dos herramientas "mirando" de forma independiente. 👍

Actualización 1: pude configurar todo mi entorno de compilación y prueba ahora invocando tsc encadenado con rollup. Necesitaba crear mi propio complemento acumulativo para resolver las rutas tsconfig correctamente, pero después de eso funcionó bien.

Compilación limpia: 9 segundos, Ver compilación: 0.5-1 segundos y las pruebas a través de Karma + Rollup también se están ejecutando (la compilación lleva un poco más de tiempo ya que genera un paquete para cada suite de pruebas).

¿Fue útil esta página
0 / 5 - 0 calificaciones