Less.js: Конструктор класса FileManager не может быть вызван без 'new'.

Созданный на 17 авг. 2019  ·  64Комментарии  ·  Источник: less/less.js

Кажется, что v3.10.0 ломает мою сборку, журналы веб-пакета ниже:

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)

Все в порядке при переходе на версию 3.9.0 , пожалуйста, изучите эту проблему и постарайтесь исправить ее как можно скорее.

Самый полезный комментарий

У меня та же проблема, вы должны изменить 'package.json' => "less": "~ 3.9.0", предельную версию

Все 64 Комментарий

У меня та же проблема, вы должны изменить 'package.json' => "less": "~ 3.9.0", предельную версию

+1

+1

+1!
Срочно~

+1

та же проблема

+1 версия меньше 3.9.0 меньше загрузчик 4.1.0

Можно убрать ^ версии less в package.json и переустановить v3.9.0.Это должно решить проблему.Можно попробовать.Хотя версия залочена,из-за ^ будет скачана последняя версия 3. последняя версия должна быть проблематичной.

+1

+1

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

Вызвано этим подобным кодом?

omg, я ограничил версию до 3.9.0, работает.

То же самое. npm автоматически подхватывает этот «второстепенный» релиз и ломает все мои сборки. :(

+1

v3.10.0 та же ошибка

+1

торопиться

+1

просто используйте [email protected] все будет в порядке

@lixiaohulee , если вы не используете less-loader, и все будет не так

+1

+1

У меня та же проблема (((

+1

у меня та же проблема :/

Это проблема более старой версии less-loader , а не Less, которая неправильно наследовала файловый менеджер Less. less-loader 5.0 делает. См.: https://github.com/less/less.js/issues/3414#issuecomment-522223041 .

Реши это?

Реши это?

Вы можете взять меньше зависимостей в вашем package.js и переустановить зависимости последней второстепенной версии.
image

+1

Оооооооооооо!!! Почему бы не решить проблему, так как многие проекты заблокировали версию less-loader с 4.1.0 .

Мы используем antd, который сломался: https://github.com/ant-design/ant-design/issues/18343 .

Как мы можем решить проблему?

@montanaflynn сохранить более старую среду и создать карту заблокированных зависимостей с npm-shrinkmap.json может быть хорошим выбором.

@ aleen42 спасибо, надеюсь, это скоро исправят, я не очень хорошо знаком со всеми вещами npm.

@montanaflynn Я много раз встречал, когда мы ломались во время сборки из-за разблокированных зависимостей, включая подзависимости. Это запутанная проблема NPM для большинства разработчиков FE.

@aleen42 мы исправили это, добавив

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

Почему возникает эта проблема?
Версия Node.js не подходит?

Это не проблема версии узла.

@montanaflynn вы также можете решить проблему, временно указав подверсию для less-loader :

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

Обновите с помощью
yarn upgrade less@^3.10.1 less-loader@^5.0.0

используйте "less": "~3.9.0"

+1

+1

Кстати, для тех, кто наблюдает за этой веткой, я снова открою и, вероятно, отправлю исправление позже сегодня для более старых версий less-loader , просто чтобы все было менее раздражающим.

Это один из тех крайних случаев, когда фактическое использование синтаксиса Class для замены функции-прототипа выдает ошибку без new . Предполагается, что FileManager всегда вызывается с помощью new (это задокументированный API), а более старые версии less-loader , по-видимому, этого не делали.

_Опять же, если вы смотрите ветку, простое обновление до less-loader 5.0 устраняет эту несовместимость._

Я думаю, что для less-loader лучше понизить свои зависимости ниже 3.9.0 .

@ aleen42 Зачем это нужно, если последняя версия less-loader работает нормально?

Предположим, что некоторым проектам может не потребоваться риск обновления высокого уровня с 4.x до 5.x .

+666

Может кто-нибудь попробовать: https://github.com/less/less.js/pull/3421?

Филиал находится по адресу: https://github.com/matthew-dean/less.js/tree/release/v3.10.2 .

Проблема при тестировании заключается в том, что собственные тесты less-loader не работают на 3.9.0, поэтому неясно, чего ожидать. Но с экспортированными классами Less, преобразованными в функции, те же самые ошибки, по крайней мере, запускаются в less-loader , поэтому неясно, является ли это ожидаемым результатом или нет. Также неясно, _как_ или почему эта ошибка возникает в Less loader v4 и не возникает в v5, за исключением того, что это может быть проблема Webpack в v4?

В любом случае, если люди могут подтвердить, что эта ветвь как зависимость Less не вызывает проблемы с классом, я ее объединяю.

+1 версия меньше 3.9.0 меньше загрузчик 4.1.0

+1

+1

Вручную укажите меньшую версию:
нпм я меньше @ 3.9.0 -D
Ok!!!

Исправить путем понижения до 3.9.0

Непосредственно перед тем, как я удаляю node_modules и набираю npm i , возникает эта ошибка. Таким образом, последняя версия 3.10.1 все еще имеет эту ошибку. Я выбираю понижение до 3.9.0

Как мне исправить эту ошибку, если я использую @zeit/next-less? Любая помощь приветствуется.

@ezgitek

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

https://forum.vuejs.org/t/vue-cli/72008/7
"меньше": "^3.10.1",
"менее загрузчик": "^5.0.0",
это работает

Объединено: https://github.com/less/less.js/pull/3421

Похоже, никто из тех, у кого были проблемы с less-loader v4, не хотел тестировать [3.10.2] 🤷‍♂, но в моем тестировании тесты Less-loader v4 не работали по-разному с 3.10.1 (проблема с конструктором класса) и сломали то же самое с этим PR . Итак..... не уверен, что это исправляет это, но должно быть не хуже?

Я объединил это возможное исправление с мастером (но еще не выпустил его в NPM). Тем не менее, хотелось бы, чтобы кто-то подтвердил перед выпуском вместо +1.

Я могу подтвердить, что я только что попробовал текущую основную ветку less локально с less-loader ^ 4.1.0, и мой проект снова может быть собран. 👍

Спасибо за вашу работу над этим!

@jenniferneale Спасибо за подтверждение! Я опубликую в NPM позже сегодня, не могу сделать это с работы.

+1

Исправлена ​​ли эта проблема в версии 3.10.3?

@ H4ngman Должно быть. Откройте заново, если нет.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги