Rollup-plugin-typescript2: Esta sintaxis requiere un ayudante importado pero no se puede encontrar el módulo 'tslib'.

Creado en 18 abr. 2017  ·  19Comentarios  ·  Fuente: ezolenko/rollup-plugin-typescript2

Veo que el código tiene algunas referencias a tslib y importHelpers así que supongo que esto debería funcionar de forma transparente. Si no, estaré feliz de saber qué falta.

He aquí cómo reproducir:

Paquetes instalados:

$ npm ls --depth=0
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

tsconfig.json :

{
    "compilerOptions": {
        "target": "es5"
    }
}

rollup.config.js :

import typescript from 'rollup-plugin-typescript2';

export default {
    entry: './main.ts',

    plugins: [
        typescript()
    ]
}

main.ts :

import {Foo} from './module';

console.log("HERE" + Foo);

Y module.ts :

export class Foo {}

export class Bar extends Foo {}

Al ejecutar el resumen de la siguiente manera:

./node_modules/.bin/rollup -c rollup.config.js

Me sale este error:

🚨   rpt2: module.ts (3,18): semantic error TS2354 This syntax requires an imported helper but module 'tslib' cannot be found.
module.ts

Creo que esto se debe a que la sintaxis extends requiere un ayudante __extends de tslib , pero el mecanografiado no puede encontrar tslib .

El resultado esperado es que los ayudantes necesarios se conviertan en parte del paquete.

Gracias.

Comentario más útil

@hueitan enfrenté el mismo problema mientras ya tenía "moduleResolution": "node" . Se solucionó agregando "tslib": "^1.10.0" a mis devDependencies.

Todos 19 comentarios

Definitivamente se supone que esto funciona de forma transparente (y funciona para mí en mis propios proyectos). Probaré tu configuración exacta, gracias.

Parece que necesita "moduleResolution": "node" en tsconfig, de lo contrario, el mecanografiado no puede encontrar tslib en node_modules.

No estoy seguro de si eso podría plantear problemas en configuraciones que no sean de nodo, pero aún no he escuchado nada al respecto.

De hecho, con "moduleResolution": "node" , funciona como se esperaba. Al leer https://www.typescriptlang.org/docs/handbook/module-resolution.html , creo que "node" es mejor para mí, así que lo usaré. ¿Puedo sugerir mencionarlo / recomendarlo en el archivo README?

Veo que abriste el # 14 para el caso "classic" , así que cerraré esto. ¡Gracias!

No estoy seguro de que alguien más se enfrente al mismo problema que el mío.

Estaba teniendo este problema https://github.com/rollup/rollup-plugin-typescript/issues/109 , por lo tanto, cambio a este repositorio, pero luego recibo este error tslib .

ya que tsconfig ya es "moduleResolution": "node"

Si publica su tsconfig, rollup config y package.json, alguien podría detectar algo mal.

@hueitan enfrenté el mismo problema mientras ya tenía "moduleResolution": "node" . Se solucionó agregando "tslib": "^1.10.0" a mis devDependencies.

agregando tslib ya que las dependencias también me funcionan. aunque no es la bonita solucion

tslib ya es una dependencia de rollup-plugin-typescript2 , ¿cómo termina faltando en su sistema?

¿Utiliza npm install o algo más?

en mi caso estoy usando hilo. Eliminando el yarn.lock y reinstalando nuevo, no necesito una mención explícita de tslib en el package.json

Puedo reproducirlo en el siguiente repositorio:

https://github.com/giniedp/tweak-ui

git clone [email protected]:giniedp/tweak-ui.git
cd tweak-ui
git checkout v0.1.0

ahora edite package.json y elimine tslib . Entonces hazlo

yarn install
yarn run build

deberías encontrarte

This syntax requires an imported helper named '__spreadArrays', but module 'tslib' has no exported member '__spreadArrays'

ahora borre el yarn.lock y luego

yarn install
yarn run build

funciona bien.

Esto se solucionó con esto

@hueitan enfrenté el mismo problema mientras ya tenía "moduleResolution": "node" . Se solucionó agregando "tslib": "^1.10.0" a mis devDependencies.

¡Reparado! El mío estaba en dependencias regulares.

Se solucionó agregando "tslib": "^ 1.10.0" a mis dependencias.

npm i tslib -D

funcionó para mí también

Como dice @ezolenko : Si bien npm i tslib -D funciona, esto _no_ debería usarse como solución, porque:

tslib ya es una dependencia de rollup-plugin-typescript2 , ¿cómo termina faltando en su sistema?

¿Utiliza npm install o algo más?

Lo que funcionó en mi caso y es la mejor solución es eliminar package-lock y node_modules y reinstalar.

rm -rf ./node_modules
rm -rf ./package-lock.json
npm i

@hueitan enfrenté el mismo problema mientras ya tenía "moduleResolution": "node" . Se solucionó agregando "tslib": "^1.10.0" a mis devDependencies.

Gracias, es tan útil

Ninguna de las soluciones propuestas funcionó para mí. Actualizar rollup-plugin-typescript2 funcionó.

npm i [email protected]

Resulta que el rollup estaba usando [email protected] incluso cuando tenía ^1.10.0 en devDependencies . Me di cuenta de que rollup-plugin-typescript2 estaba anulando la versión tslib. Estaba usando v0.20.1 ; actualizado a v0.27.1 .

Comportamiento extraño, pero reiniciar el código VS funcionó para mí. No tuve el problema anteriormente, simplemente surgió después de instalar un paquete.

Se solucionó agregando "tslib": "^ 1.10.0" a mis dependencias.

Gracias. Se acaba de agregar a peerDependencies y me funciona bien, no es necesario instalarlo

Tuve este error:

error semántico TS2343: esta sintaxis requiere una importancia
ted helper llamado '__spreadArray' que no existe en 'tslib'. Considere actualizar su versión de 'tslib'.

Se solucionó agregando "tslib": "^ 2.1.0" a mis dependencias.

Simplemente puede actualizar nuestra versión tslib . Hice el mío desde [email protected] a tslib@^2.2.0, que es el último por el momento y solucionó mi problema "__spreadArray" .

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