Less.js: クラスコンストラクタFileManagerは、「new」なしでは呼び出すことができません。

作成日 2019年08月17日  ·  64コメント  ·  ソース: less/less.js

v3.10.0は私のビルドを壊しているようです。以下のwebpackログ:

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)

v3.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

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ファイルマネージャーを正しく継承しなかったLessではなく古いバージョンのless-loaderの問題です。 less-loader 5.0はそうです。 参照: https ://github.com/less/less.js/issues/3414#issuecomment -522223041

解決しますか?

解決しますか?

package.jsの依存関係を減らして、最新のマイナーバージョンの依存関係を再インストールできます。
image

+1

Oooooooooooops !!! 多くのプロジェクトがless-loaderバージョンを4.1.0でロックしているので、問題を修正してみませんか。

壊れたantdを使用しています: https ://github.com/ant-design/ant-design/issues/18343

どうすれば問題を解決できますか?

@montanaflynnは古い環境を維持し、 npm-shrinkmap.jsonを使用してロックされた依存関係マップを生成することをお勧めします。

@ aleen42ありがとう、私はこれがすぐに修正されることを願っています、私はすべてのnpmのものにあまり精通していません。

@montanaflynnサブ依存関係を含むロック解除された依存関係のために、ビルド中に壊れたときに何度も会いました。 これは、ほとんどのFE開発者にとってNPMの紛らわしい問題です。

@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なしでエラーがスローされるエッジケースの1つです。 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では発生しない理由も明確ではありません。ただしv4でのWebpackの問題である可能性があります。

いずれにせよ、Less依存関係としてのこのブランチがクラスの問題を引き起こさないことを人々が確認できれば、それをマージします。

+1バージョンレス3.9.0レスローダー4.1.0

+1

+1

手動で少ないバージョンを指定する:
npm i [email protected] -D
わかった!!!

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
"less": "^ 3.10.1"、
"less-loader": "^ 5.0.0"、
が走っています

統合: https ://github.com/less/less.js/pull/3421

ローダーv4の問題が少ない人は誰もテストする気がないようでした[3.10.2]🤷‍♂、しかし私のテストでは、ローダーのv4テストは3.10.1(クラスコンストラクターの問題)とは異なって壊れ、このPRでも同じように壊れました。 だから.....それがそれを修正するかどうかはわかりませんが、それは悪くないはずですか?

その可能な修正をマスターにマージしました(ただし、まだNPMにリリースされていません)。 それでも、+ 1の代わりに、リリースする前に誰かが確認することを望んでいます。

lessローダー^4.1.0を使用してローカルでlessの現在のマスターブランチを試したところ、プロジェクトを再度ビルドできることを確認できます。 👍

これに取り組んでくれてありがとう!

@jenniferneale確認していただきありがとうございます! それでは、今日の後半にNPMに公開しますが、仕事からは公開できません。

+1

この問題は3.10.3で修正されていますか?

@H4ngmanする必要があります。 そうでない場合は、再度開きます。

このページは役に立ちましたか?
0 / 5 - 0 評価