Less.js: 3.11.0 No se puede encontrar el módulo 'tslib'

Creado en 10 feb. 2020  ·  19Comentarios  ·  Fuente: less/less.js

No se puede encontrar el módulo 'tslib' 3.11.0

high priority

Comentario más útil

3.11.0 fue una gran actualización.
Debería haber sido 4.0.0

Todos 19 comentarios

Puedo reconocer el problema. Llegó con la versión más nueva, 3.10.3 funcionó bien. ¿Quizás @ matthew-dean podría verificar la última combinación?

Pasos para reproducir con docker

  1. crear una nueva carpeta
  2. coloque algunos test.less que contengan un código menos válido allí
  3. crea un Dockerfile con el siguiente contenido:
FROM buildpack-deps:buster

COPY test.less /

# install npm
ENV HOME /root
RUN curl -sL https://deb.nodesource.com/setup_10.x | bash -
RUN apt-get install -y nodejs

# install less and compile something
RUN npm install -g less
WORKDIR /
RUN lessc test.less test.css
  1. Llama a docker build . en la carpeta

Esto provocará el siguiente error:

Step 6/8 : RUN npm install -g less
 ---> Running in a76855c18efa
/usr/bin/lessc -> /usr/lib/node_modules/less/bin/lessc
+ [email protected]
added 60 packages from 123 contributors in 4.306s
Removing intermediate container a76855c18efa
 ---> b78508030649
Step 7/8 : WORKDIR /
 ---> Running in 6cca70d0d858
Removing intermediate container 6cca70d0d858
 ---> d812408c6ef8
Step 8/8 : RUN lessc test.less test.css
 ---> Running in 6c8ef5fc9408
internal/modules/cjs/loader.js:638
    throw err;
    ^

Error: Cannot find module 'tslib'
    at Function.Module._resolveFilename (internal/modules/cjs/loader.js:636:15)
    at Function.Module._load (internal/modules/cjs/loader.js:562:25)
    at Module.require (internal/modules/cjs/loader.js:692:17)
    at require (internal/modules/cjs/helpers.js:25:18)
    at Object.<anonymous> (/usr/lib/node_modules/less/bin/lessc:9:13)
    at Module._compile (internal/modules/cjs/loader.js:778:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:789:10)
    at Module.load (internal/modules/cjs/loader.js:653:32)
    at tryModuleLoad (internal/modules/cjs/loader.js:593:12)
    at Function.Module._load (internal/modules/cjs/loader.js:585:3)
The command '/bin/sh -c lessc test.less test.css' returned a non-zero code: 1

También reproducible con grunt-contrib-less ("grunt-contrib-less": "2.0.0") que usa "less": "^3.0.4".
También se informó un problema de trago.

3.11.0 fue una gran actualización.
Debería haber sido 4.0.0

También provocó errores en el conjunto de pruebas Yarn E2E (lo usamos para monitorear varios proyectos):
https://github.com/yarnpkg/berry/runs/436357016

Sospecho que el proyecto solo necesita agregar una dependencia a tslib ; la gente tiende a olvidarse de enumerarlo explícitamente porque los archivos fuente no hacen referencia a él, solo lo hacen los artefactos de compilación.

Bueno disparar, lo siento todo. La compilación estaba pasando las pruebas unitarias, así que supongo que faltaba una prueba aquí.

@siimots

3.11.0 fue una gran actualización. Debería haber sido 4.0.0

No realmente, en términos de semver. No debe haber cambios incompatibles con versiones anteriores, solo cambios en algunas configuraciones de compilación. Lo comprobaré en breve.

@arcanis

Sospecho que el proyecto solo necesita agregar una dependencia a tslib: las personas tienden a olvidarse de enumerarlo explícitamente porque los archivos fuente no lo hacen referencia, solo lo hacen los artefactos de compilación.

Probablemente la razón por la que esto sucedió es porque tslib podría ser una dependencia implícita (dependencia de una dependencia) en devDependencies. Entonces, las pruebas pasarían, pero un npm install normal no lo instalaría.

+1, también viendo esto con apóstrofemos. Parece que esto se solucionará rápidamente, gracias.

Aparte, si alguien conoce un método confiable para simular/probar una instalación de biblioteca como una dependencia y ejecutar pruebas sin la necesidad de borrar/reinstalar módulos de nodo, me encantaría escucharlo.

@matthew-dean Fwiw, este tipo de problema es una de las razones por las que introdujimos Plug'n'Play en Yarn. Lanza excepciones cuando los paquetes realizan accesos inseguros (como tslib aquí) en lugar de dejar que tengan éxito por error. Por supuesto, requiere usar Yarn ya que npm no lo admite, por lo que puede que no sea lo que está buscando 🙂

Para darle un ejemplo, esto es lo que informó la prueba que vinculé:

image

¿Alguien puede verificar que esta compilación está arreglando cosas? https://github.com/less/less.js/tree/release-3.11.1

Puede tener carpetas node_modules anidadas en cualquier lugar. Entonces puedes poner uno
su prueba/ carpeta que solo se usa para este propósito y es más conveniente
hacer estallar. Hacemos esto con apóstrofe.

El lunes 10 de febrero de 2020 a las 16:37 Matthew Dean [email protected]
escribió:

¿Alguien puede verificar que esta compilación está arreglando cosas?
https://github.com/less/less.js/tree/release-3.11.1


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27IM5UVBLOEMPE5BJR3RCHCJBA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKMI5A#issuecomment-5684,392
o darse de baja
https://github.com/notifications/unsubscribe-auth/AAAH27OZWO622K5JYHEYNCLRCHCJBANCNFSM4KSHHJ6Q
.

--

TOMÁS BOUTELL | JEFE DE TECNOLOGÍA
APOSTROFECOS | apostrophecms.com | él/él/su

Dentro de eso puede tener un enlace simbólico para encontrar la carpeta principal del módulo por
el nombre correcto

El lunes 10 de febrero de 2020 a las 5:02 p. m. Tom Boutell [email protected] escribió:

Puede tener carpetas node_modules anidadas en cualquier lugar. Entonces puedes poner uno
su prueba/ carpeta que solo se usa para este propósito y es más conveniente
hacer estallar. Hacemos esto con apóstrofe.

El lunes 10 de febrero de 2020 a las 16:37 Matthew Dean [email protected]
escribió:

¿Alguien puede verificar que esta compilación está arreglando cosas?
https://github.com/less/less.js/tree/release-3.11.1


Estás recibiendo esto porque comentaste.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27IM5UVBLOEMPE5BJR3RCHCJBA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKMI5A#issuecomment-5684,392
o darse de baja
https://github.com/notifications/unsubscribe-auth/AAAH27OZWO622K5JYHEYNCLRCHCJBANCNFSM4KSHHJ6Q
.

--

TOMÁS BOUTELL | JEFE DE TECNOLOGÍA
APOSTROFECOS | apostrophecms.com | él/él/su

--

TOMÁS BOUTELL | JEFE DE TECNOLOGÍA
APOSTROFECOS | apostrophecms.com | él/él/su

@ matthew-dean... ¿cómo puedo cambiar mi archivo package.json para probar su nueva versión? Todavía solo puedo desplegar 3.11.0 si no especifico una versión.

@boutell Esa no es la descripción más clara. ¿Quiere decir configurar algún tipo de subpaquete en el repositorio? Me pregunto cómo haces esto de una manera que no encuentre el algoritmo de resolución padre node_modules de Node.

@jmwolfe

https://docs.npmjs.com/files/package.json#git-urls-as-dependencies

Mmm. No, tienes razón, eso no se ajusta a tu situación. Lo único
Lo seguro que se me ocurre sería configurar un proxy npm local en el que
ese módulo en particular se satisface desde su propia ubicación y prueba npm
instalar contra eso. Proxies npm locales como este en realidad no son difíciles de
venir pero es un poco mucho.

El lunes 10 de febrero de 2020 a las 17:10 Matthew Dean [email protected]
escribió:

@boutell https://github.com/boutell Eso no es lo más claro
descripción. ¿Quiere decir configurar algún tipo de subpaquete en el repositorio?
Me pregunto cómo haces esto de una manera que no se encuentre con el padre de Node.
Algoritmo de resolución de node_modules.

@jmwolfe https://github.com/jmwolfe

https://docs.npmjs.com/files/package.json#git-urls-as-dependencies


Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27O3T4O2Z7VPTBA6HYLRCHGEPA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELKPPYQ#issuecomment-23443,8
o darse de baja
https://github.com/notifications/unsubscribe-auth/AAAH27JP6LEUZIENWBEWERLRCHGEPANCNFSM4KSHHJ6Q
.

--

TOMÁS BOUTELL | JEFE DE TECNOLOGÍA
APOSTROFECOS | apostrophecms.com | él/él/su

@ matthew-dean: usar esto en mi paquete.json funciona para arreglar gulp-less, que depende de menos:

"dependencies": {
    "less": "git://github.com/less/less.js.git#afc9b86"
}

# npm list less
[email protected] C:\SVN\CMGR\branches\cmgr_pmm2\ContentManager\ContentManager            
+-- [email protected]                                                                           
| `-- [email protected]  deduped (git://github.com/less/less.js.git#afc9b8606272a01bf4392f71e4d9db59d06fddb9)                                                                                     
`-- [email protected]  (git://github.com/less/less.js.git#afc9b8606272a01bf4392f71e4d9db59d06fddb9)

mi gulpfile.js resultante se carga perfectamente.

PD. gulp-less y algunos otros paquetes están en devDependencies.

¡Genial, gracias! ¿Está publicado en npm?

El martes 11 de febrero de 2020 a las 00:53 Matthew Dean [email protected]
escribió:

Cerrado #3469 https://github.com/less/less.js/issues/3469 vía 842386b
https://github.com/less/less.js/commit/842386b8db5cb5afa4edf5a4c81d40bcbf47a6a2
.


Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27NPPJXO4IOUM2I2J3LRCI4NLA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFWZEXG43VMVCXMZLOORHG65DJMZUWGYLUNFXW5KTDN5WW2ZLOORP52IZevenGO5,3#16
o darse de baja
https://github.com/notifications/unsubscribe-auth/AAAH27I5LOTWY22VMC57QFLRCI4NLANCNFSM4KSHHJ6Q
.

--

TOMÁS BOUTELL | JEFE DE TECNOLOGÍA
APOSTROFECOS | apostrophecms.com | él/él/su

@boutell sí lo es. Acabo de verificar.

👍 gracias por todo lo que haces!

El martes 11 de febrero de 2020 a las 12:18 Jesse Wolfe [email protected]
escribió:

@boutell https://github.com/boutell sí lo es. Acabo de verificar.


Estás recibiendo esto porque te mencionaron.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/less/less.js/issues/3469?email_source=notifications&email_token=AAAH27P3RR4ZWL6PXZHC7N3RCLMXRA5CNFSM4KSHHJ62YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOELNIUHY#issuecomment7-5847,4
o darse de baja
https://github.com/notifications/unsubscribe-auth/AAAH27MKPLJTLBZ5NLHZWALRCLMXRANCNFSM4KSHHJ6Q
.

--

TOMÁS BOUTELL | JEFE DE TECNOLOGÍA
APOSTROFECOS | apostrophecms.com | él/él/su

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