Less.js: Konstruktor kelas FileManager tidak dapat dipanggil tanpa 'baru'.

Dibuat pada 17 Agu 2019  ·  64Komentar  ·  Sumber: less/less.js

Tampaknya v3.10.0 merusak build saya, log webpack di bawah ini:

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)

Semuanya baik-baik saja saat menurunkan versi ke v3.9.0 , harap selidiki masalah ini dan berharap untuk memperbaikinya sesegera mungkin.

Komentar yang paling membantu

Saya memiliki masalah yang sama,Anda mengubah 'package.json' => "less": "~3.9.0", batasi versi

Semua 64 komentar

Saya memiliki masalah yang sama,Anda mengubah 'package.json' => "less": "~3.9.0", batasi versi

+1

+1

+1!
Mendesak~

+1

permasalahan yang sama

+1 versi lebih sedikit 3.9.0 lebih sedikit pemuat 4.1.0

Anda dapat menghapus ^ dari versi yang lebih sedikit di package.json dan menginstal ulang v3.9.0. Ini akan menyelesaikan masalah. Anda dapat mencobanya. Meskipun versi terkunci, karena ^, versi terbaru dari 3 akan diunduh. versi terbaru pasti bermasalah. .

+1

+1

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

Disebabkan oleh kode serupa ini?

omg, saya membatasi versi ke 3.9.0, berfungsi.

Sama disini. npm mengambil rilis "minor" ini secara otomatis, dan merusak semua build saya. :(

+1

v3.10.0 kesalahan yang sama

+1

buru-buru

+1

cukup gunakan [email protected] semuanya akan baik-baik saja

@lixiaohulee kecuali jika Anda tidak menggunakan less-loader dan semuanya tidak akan baik-baik saja

+1

+1

Saya memiliki masalah yang sama (((

+1

saya punya masalah yang sama :/

Ini adalah masalah dengan versi less-loader yang lebih lama, bukan Less, yang tidak mewarisi less filemanager dengan benar. less-loader 5.0 tidak. Lihat: https://github.com/less/less.js/issues/3414#issuecomment -522223041

Memecahkannya?

Memecahkannya?

Anda dapat, mengambil lebih sedikit dependensi di package.js Anda dan menginstal ulang dependensi versi minor terbaru.
image

+1

Oooooooooops!!! Mengapa tidak memperbaiki masalah karena banyak proyek telah mengunci versi less-loader dengan 4.1.0 .

Kami menggunakan antd yang rusak: https://github.com/ant-design/ant-design/issues/18343

Bagaimana kita bisa memperbaiki masalah?

@montanaflynn menyimpan lingkungan yang lebih lama dan menghasilkan peta dependensi yang terkunci dengan npm-shrinkmap.json mungkin merupakan pilihan yang baik.

@aleen42 terima kasih, saya harap ini bisa segera diperbaiki, saya tidak terlalu akrab dengan semua hal npm.

@montanaflynn Saya telah bertemu berkali-kali ketika kami putus selama membangun karena dependensi yang tidak terkunci, termasuk sub dependensi. Ini adalah masalah NPM yang membingungkan bagi sebagian besar pengembang FE.

@aleen42 kami memperbaikinya dengan menambahkan

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

Mengapa masalah ini muncul?
Versi Node.js tidak benar?

Ini bukan masalah versi simpul.

@montanaflynn Anda juga dapat memperbaiki masalah dengan menentukan sub versi untuk less-loader sementara:

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

Tingkatkan dengan
yarn upgrade less@^3.10.1 less-loader@^5.0.0

gunakan "less": "~3.9.0"

+1

+1

Kebetulan, bagi mereka yang menonton utas ini, saya akan membuka kembali dan mungkin mengirimkan perbaikan hari ini untuk versi less-loader yang lebih lama, hanya untuk mengurangi gangguan.

Ini adalah salah satu kasus Edge di mana sebenarnya menggunakan sintaks Class untuk mengganti fungsi prototipe menimbulkan kesalahan tanpa new . FileManager seharusnya selalu dipanggil dengan new (itulah API yang didokumentasikan), dan versi less-loader yang lebih lama tampaknya tidak.

_Sekali lagi, jika Anda melihat utasnya, hanya memperbarui ke less-loader 5.0 memperbaiki ketidakcocokan ini._

Saya pikir lebih baik less-loader untuk menurunkan dependensinya di bawah 3.9.0 .

@aleen42 Mengapa itu perlu, ketika versi terbaru dari less-loader berfungsi dengan baik?

Asumsikan bahwa beberapa proyek mungkin tidak perlu memperhatikan risiko peningkatan tingkat tinggi dari 4.x ke 5.x .

+666

Adakah yang bisa mencoba: https://github.com/less/less.js/pull/3421?

Cabang ada di: https://github.com/matthew-dean/less.js/tree/release/v3.10.2

Tantangan dalam menguji ini adalah pengujian less-loader sendiri gagal pada 3.9.0, jadi tidak jelas apa yang diharapkan. Tetapi, dengan kelas yang diekspor Less diubah menjadi fungsi, kesalahan yang sama setidaknya dipicu di less-loader , jadi tidak jelas apakah itu hasil yang diharapkan atau tidak. Juga tidak jelas _how_ atau mengapa kesalahan ini terjadi di Less loader v4, dan tidak terjadi di v5, kecuali mungkin masalah Webpack di v4?

Bagaimanapun, jika orang dapat mengonfirmasi bahwa cabang ini sebagai ketergantungan yang Lebih Sedikit tidak menyebabkan masalah kelas, maka saya akan menggabungkannya.

+1 versi lebih sedikit 3.9.0 lebih sedikit pemuat 4.1.0

+1

+1

Tentukan versi yang lebih sedikit secara manual
npm saya [email protected] -D
oke!!!

Perbaiki dengan menurunkan versi ke 3.9.0

Tepat sebelumnya, saya menghapus node_modules dan mengetik npm i , kesalahan ini terjadi. Jadi versi terbaru 3.10.1 masih memiliki bug ini. Saya memilih downgrade ke 3.9.0

Bagaimana cara memperbaiki bug ini jika saya menggunakan @zeit/next-less? Setiap bantuan dihargai.

@ezgitek

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

https://forum.vuejs.org/t/vue-cli/72008/7
"kurang": "^3.10.1",
"less-loader": "^5.0.0",
sedang berlari

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

Tidak seorang pun dengan masalah v4 less-loader tampaknya bersedia untuk menguji [3.10.2] , tetapi dalam pengujian saya, tes v4 Less-loader berbeda dengan 3.10.1 (masalah konstruktor kelas), dan memecahkan masalah yang sama dengan PR ini . Jadi ..... tidak yakin apakah itu memperbaikinya, tetapi seharusnya tidak lebih buruk?

Saya menggabungkan kemungkinan perbaikan itu menjadi master (tetapi belum dirilis ke NPM). Masih akan senang jika seseorang mengonfirmasi sebelum merilis alih-alih +1.

Saya dapat mengonfirmasi bahwa saya baru saja mencoba cabang master less lokal saat ini dengan less-loader ^4.1.0, dan proyek saya dapat dibangun kembali. 👍

Terima kasih atas pekerjaan Anda dalam hal ini!

@jenniferneale Terima kasih telah mengonfirmasi! Saya akan mempublikasikan ke NPM hari ini, tidak dapat melakukannya dari pekerjaan.

+1

Apakah masalah ini diperbaiki dengan 3.10.3?

@H4ngman Seharusnya. Buka kembali jika tidak.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

chricken picture chricken  ·  6Komentar

renoth picture renoth  ·  6Komentar

heavyk picture heavyk  ·  3Komentar

bassjobsen picture bassjobsen  ·  6Komentar

seven-phases-max picture seven-phases-max  ·  6Komentar