Less.js: El constructor de clases FileManager no se puede invocar sin 'nuevo'.

Creado en 17 ago. 2019  ·  64Comentarios  ·  Fuente: less/less.js

Parece que v3.10.0 rompe mi compilación, los registros del paquete web a continuación:

ERROR in ./src/pages/score/components/current/no-join/index.less
Module build failed (from ./node_modules/[email protected]@mini-css-extract-plugin/dist/loader.js):
ModuleBuildError: Module build failed (from ./node_modules/[email protected]@less-loader/dist/cjs.js):


Class constructor FileManager cannot be invoked without 'new'
      in undefined (line undefined, column undefined)
    at runLoaders (/home/admin/build/node_modules/[email protected]@webpack/lib/NormalModule.js:313:20)
    at /home/admin/build/node_modules/[email protected]@loader-runner/lib/LoaderRunner.js:367:11
    at /home/admin/build/node_modules/[email protected]@loader-runner/lib/LoaderRunner.js:233:18
    at context.callback (/home/admin/build/node_modules/[email protected]@loader-runner/lib/LoaderRunner.js:111:13)

Todo está bien cuando cambia a la versión 3.9.0 , investigue este problema y espere solucionarlo lo antes posible.

Comentario más útil

Tengo el mismo problema, debe cambiar su 'paquete.json' => "menos": "~ 3.9.0", versión límite

Todos 64 comentarios

Tengo el mismo problema, debe cambiar su 'paquete.json' => "menos": "~ 3.9.0", versión límite

+1

+1

+1!
Urgente~

+1

el mismo problema

+1 versión menos 3.9.0 menos cargador 4.1.0

Puede eliminar el ^ de la versión less en package.json y reinstalar v3.9.0. Debería resolver el problema. Puede intentarlo. Aunque la versión está bloqueada, debido a ^, se descargará la última versión de 3. El La última versión debería ser problemática. .

+1

+1

const shortname = new this.less.FileManager().extractUrlParts(filename).filename;

¿Causado por este código similar?

Dios mío, limité la versión a 3.9.0, funciona.

Aquí igual. npm recoge esta versión "menor" automáticamente y rompe todas mis compilaciones. :(

+1

v3.10.0 mismo error

+1

apurarse

+1

solo use [email protected] todo estará bien

@lixiaohulee a menos que no esté usando less-loader y todo no estará bien

+1

+1

Tengo el mismo problema (((

+1

Tengo el mismo problema :/

Este es un problema con una versión anterior de less-loader , no Less, que no heredó correctamente el administrador de archivos Less. less-loader 5.0 lo hace. Ver: https://github.com/less/less.js/issues/3414#issuecomment -522223041

¿Resuélvelo?

¿Resuélvelo?

Puede tomar las dependencias menos en su paquete.js y reinstalar las últimas dependencias de la versión secundaria.
image

+1

Oooooooooops!!! ¿Por qué no solucionar el problema ya que muchos proyectos han bloqueado la versión less-loader con 4.1.0 ?

Estamos usando antd que se rompió: https://github.com/ant-design/ant-design/issues/18343

¿Cómo podemos solucionar el problema?

@montanaflynn mantener un entorno más antiguo y generar un mapa de dependencias bloqueadas con npm-shrinkmap.json puede ser una buena opción.

@aleen42 gracias, espero que esto se pueda arreglar pronto, no estoy muy familiarizado con todas las cosas de npm.

@montanaflynn Me he encontrado muchas veces cuando fallamos durante la construcción debido a las dependencias desbloqueadas, incluidas las subdependencias. Este es un problema confuso de NPM para la mayoría de los desarrolladores de FE.

@ aleen42 lo arreglamos agregando

  "devDependencies": {
    "less-loader": "^5.0.0"
  }

¿Por qué surge este problema?
¿La versión de Node.js no es correcta?

No es un problema de versión del nodo.

@montanaflynn también puede solucionar el problema especificando una subversión para less-loader temporalmente:

devDepedencies: {
    "less-loader": "4.1.0",
    "less": "3.9.0"
}

Actualizar con
yarn upgrade less@^3.10.1 less-loader@^5.0.0

usar "less": "~3.9.0"

+1

+1

Por cierto, para aquellos que vean este hilo, volveré a abrir y probablemente enviaré una solución más tarde hoy para versiones anteriores de less-loader , solo para que las cosas sean menos molestas.

Es uno de esos casos extremos en los que usar la sintaxis Class para reemplazar una función prototipo genera un error sin new . Se supone que siempre se invoca un FileManager con new (esa es la API documentada), y las versiones anteriores de less-loader aparentemente no lo hacían.

_Una vez más, sin embargo, si está mirando el hilo, solo actualizar a less-loader 5.0 soluciona esta incompatibilidad._

Creo que es mejor para less-loader degradar sus dependencias por debajo 3.9.0 .

@ aleen42 ¿Por qué sería necesario, cuando la última versión de less-loader funciona bien?

Suponga que es posible que algunos proyectos no necesiten tener en cuenta el riesgo de una actualización de alto nivel de 4.x a 5.x .

+666

¿Alguien puede probar: https://github.com/less/less.js/pull/3421?

La sucursal está en: https://github.com/matthew-dean/less.js/tree/release/v3.10.2

El desafío al probar esto es que las propias pruebas de less-loader fallan en 3.9.0, por lo que no está claro lo que se espera. Pero, con las clases exportadas de Less transpiladas a funciones, los mismos errores al menos se activan en less-loader , por lo que no está claro si ese es el resultado esperado o no. Tampoco está claro _cómo_ o por qué ocurre este error en Less loader v4, y no ocurre en v5, excepto que puede ser un problema de Webpack en v4.

En cualquier caso, si las personas pueden confirmar que esta rama como una dependencia de Less no causa el problema de la clase, entonces la fusionaré.

+1 versión menos 3.9.0 menos cargador 4.1.0

+1

+1

Especificar manualmente menos versión:
npm i [email protected] -D
¡¡¡OK!!!

Arreglo por downgrade a 3.9.0

Justo antes, elimino node_modules y escribo npm i , ocurre este error. Entonces, la última versión 3.10.1 todavía tiene este error. Elijo bajar a 3.9.0

¿Cómo solucionaría este error si estoy usando @zeit/next-less? Cualquier ayuda apreciada.

@ezgitek

npm i @zeit/next-less
npm i [email protected]

https://forum.vuejs.org/t/vue-cli/72008/7
"menos": "^3.10.1",
"menos-cargador": "^5.0.0",
Esta corriendo

Combinado: https://github.com/less/less.js/pull/3421

Nadie con problemas de less-loader v4 parecía dispuesto a probar [3.10.2] 🤷‍♂, pero en mis pruebas, las pruebas de Less-loader v4 se rompieron de manera diferente con 3.10.1 (problema de constructor de clase) y se rompieron de la misma manera con este PR . Entonces... no estoy seguro de si lo arregla, pero ¿no debería ser peor?

Fusioné esa posible solución en el maestro (pero aún no se lanzó a NPM). Todavía me encantaría que alguien confirme antes de lanzar en lugar de los +1.

Puedo confirmar que acabo de probar la rama maestra actual de less localmente con less-loader ^ 4.1.0, y mi proyecto puede compilarse nuevamente. 👍

¡Gracias por tu trabajo en esto!

@jenniferneale ¡ Gracias por confirmar! Publicaré en NPM más tarde hoy, no puedo hacerlo desde el trabajo.

+1

¿Se solucionó este problema con 3.10.3?

@H4ngman Debería serlo. Vuelva a abrir si no.

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