Less.js: Ekstensi diperlukan di node_modules

Dibuat pada 12 Okt 2017  ·  23Komentar  ·  Sumber: less/less.js

Saya telah mencoba mereplikasi masalah hari ini & akhirnya saya mendapatkan sesuatu dengan meretas di direktori node_modules .

Pada dasarnya, menyertakan file KURANG tanpa ekstensi berfungsi, kami tahu ini... tapi... memasukkan tanpa ekstensi dari direktori node_modules gagal.

Saya telah membuat repo sederhana yang menunjukkan yang berikut: https://github.com/robhuzzey/lessimporttest

<strong i="11">@import</strong> './one/two/three/four/test'; berhasil

seperti halnya: <strong i="14">@import</strong> 'thisisinnodemodules/one/two/three/four/test.less';
(perhatikan itu termasuk dari node_modules dengan ekstensi)

Namun:

<strong i="19">@import</strong> 'thisisinnodemodules/one/two/three/four/test';
(perhatikan itu termasuk dari node_modules tanpa ekstensi)

tidak berfungsi dan menghasilkan kesalahan berikut:

$ npm run buildStyles

> [email protected] buildStyles /Users/robert.huzzey/Sites/test/lessissue
> lessc styles.less styles.css

FileError: 'thisisinnodemodules/one/two/three/four/test' wasn't found. Tried - /Users/robert.huzzey/Sites/test/lessissue/thisisinnodemodules/one/two/three/four/test.less,/Users/robert.huzzey/Sites/test/lessissue/thisisinnodemodules/one/two/three/four/test.less,/Users/robert.huzzey/Sites/test/lessissue/node_modules/thisisinnodemodules/one/two/three/four/test,thisisinnodemodules/one/two/three/four/test.less in /Users/robert.huzzey/Sites/test/lessissue/styles.less on line 5, column 1:
4 // This does NOT work
5 <strong i="24">@import</strong> 'thisisinnodemodules/one/two/three/four/test';
6 

Saya telah membuat beberapa cabang untuk menunjukkan bahwa ini tampaknya menjadi masalah dengan v3 tetapi BUKAN v2 ... adakah yang bisa mengonfirmasi apakah ini perilaku yang diharapkan atau tidak diinginkan (sepertinya saya tidak bisa untuk menemukan sesuatu tentang ini secara online).

bug high priority

Semua 23 komentar

Juga mengalami masalah ini hari ini.

Saya mengkonfirmasi masalah ini juga. Anda dapat mereproduksinya dengan mengkloning dan menjalankan npm run dev di repo ini:

https://github.com/acacha/AdminLTETinkerLaravelMix

Perhatikan bahwa ini mungkin masalah webpack karena menggunakan perintah lessc tidak ada masalah.

@acacha Saya memang memikirkan hal yang sama tetapi saya telah membuktikan sebaliknya .. jika Anda melihat repo yang saya buat dalam masalah yang diangkat ... Anda dapat melihatnya tidak menggunakan webpack & kami masih memiliki masalah ini :(

Saya memang telah menggali lebih sedikit kode sumber & ini sepertinya tempat untuk mulai menguji beberapa hal:

https://github.com/less/less.js/blob/55380d49e96a6ed561cac4d13a774830aa3c17a3/lib/less-node/file-manager.js#L79 -L87

Saya enggan untuk mulai menggali atau membuat PR sampai saya tahu ini bukan perilaku yang dimaksudkan... jika salah satu pengelola Less dapat mengonfirmasi... Saya dengan senang hati menyelidiki perbaikannya.

@robhuzzey Mengimpor dari node_modules hanya ditambahkan ke alfa 3.0 terakhir, dan tidak, itu bukan perilaku yang dimaksudkan bahwa itu tidak akan diimpor tanpa .less dalam impor. Pasti bug di 3.0 alpha 3. Terima kasih telah memeriksanya.

@matthew-dean Sepertinya saya telah memperbaikinya dengan pekerjaan ini: https://github.com/robhuzzey/less.js/tree/issue3115_extInNodePath tetapi tidak jelas di mana harus menambahkan tes untuk ini?

Semua tes lulus dengan perubahan ini... Saya senang mengirimkan PR untuk ditinjau / saran?

@robhuzzey Anda perlu menambahkan .less NPM devDependency di package.json , dan kemudian menambahkan tes (dalam /tests/less ) untuk memuat file dari modul (mungkin import-module.less file?) Setelah menambahkan tes, saya akan memverifikasi bahwa itu rusak tanpa perbaikan untuk memastikan tes bekerja.

Terima kasih @matthew-dean Saya memverifikasi bahwa tes saat ini rusak sebelum melakukan perbaikan ... di mana saya kesulitan adalah bahwa semua tes diberi nama .less .

Saya kira tantangan selanjutnya adalah membuatnya memasukkan file dari node_modules .

@robhuzzey Apakah Anda juga punya waktu untuk melihat https://github.com/less/less.js/issues/3116 ? Tidak apa-apa jika Anda tidak melakukannya.

@matthew-dean yakin... senang membantu.

Saya melakukan tes untuk cabang saya di sini: https://github.com/robhuzzey/less.js/tree/issue3115_extInNodePath tetapi sesuatu tampaknya tidak berfungsi seperti yang saya harapkan (saya pikir saya tidak sepenuhnya mengerti bagaimana memasukkan tes untuk pekerjaan ini).

Jika Anda dapat menunjukkan kepada saya apa yang saya lakukan salah, saya akan sangat menghargainya :)

Maaf @matthew-dean Saya sedang bekerja di luar negeri saat ini jadi di zona waktu yang berbeda sekarang... senang melihat masalah yang Anda miliki jika Anda dapat memberi tahu saya cara menulis tes untuk lib ini? Saya sudah mencoba beberapa kali secara berkala tetapi merasa itu mungkin sesuatu yang jelas, Anda dapat memberi tahu saya dengan mudah :)

@robhuzzey Saya tidak terbiasa dengan sintaks file: di NPM, tetapi, jika tidak, bagi saya sepertinya itu harus berjalan dengan benar. Satu-satunya hal lain yang perlu Anda lakukan adalah menempatkan import-module.css di test/css , yang kemudian digunakan sebagai file perbandingan dengan keluaran yang diharapkan sehingga pengujian dapat memverifikasi bahwa itu berfungsi. Saat Anda menjalankan grunt quicktest , Anda mungkin perlu menyesuaikan hal-hal kecil di CSS keluaran Anda seperti baris baru atau indentasi hanya untuk mencocokkan keluaran Lebih sedikit. Anda bahkan dapat membuat file kosong untuk pengujian pertama Anda dan kemudian menyalin / menempelkan output yang diharapkan di log konsol. Selama itu mengeluarkan aturan dari modul dengan .less dihilangkan, itu yang penting. Saya benar-benar akan memadukan pengujian Anda sehingga beberapa (atau satu) diimpor dengan .less dan beberapa tanpa, untuk pengujian yang lebih kuat.

@matthew-dean terima kasih... pada akhirnya sangat sederhana.. hanya membutuhkan CSS untuk membandingkan!

Saya juga tidak tahu tentang sintaks file:// di NPM sebelumnya ... tapi sekarang saya menyadari ini adalah kasus penggunaan yang baik daripada membuat paket NPM yang sebenarnya hanya untuk tes :)

Saya telah membuat PR sekarang: https://github.com/less/less.js/pull/3120 Saya tidak yakin dengan deskripsi terbaik ... jika Anda memiliki contoh, saya dapat mengikuti dll atau template saya akan dengan senang hati ikuti itu.

Terima kasih.

Masalah ini telah diselesaikan dengan: https://github.com/less/less.js/pull/3120

@robhuzzey Adakah garis waktu kapan Alpha baru akan dirilis dengan perbaikan ini? Ini saat ini merusak build webpack saya ketika saya mencoba mengganti variabel di perpustakaan eksternal.

@stefan-schweiger Saya akan mencoba merilis ini malam ini atau besok malam.

Jika ada yang tertarik untuk terlibat dalam Releasing for the Less repo, hubungi saya di sini atau di Twitter @matthewdeaners.

@stefan-schweiger maaf, baru lihat ini. Saya tidak memiliki kemampuan untuk merilis seperti yang dimiliki Matthew Dean (ini adalah kontribusi pertama saya untuk Less jujur).

@matthew-dean seperti yang mungkin Anda tahu, saya cukup sibuk saat ini tetapi saya memiliki beberapa "waktu senggang" yang dijadwalkan segera jadi saya akan kembali kepada Anda jika tidak apa-apa? (Saya tidak bisa menambahkan lebih banyak untuk apa yang saya lakukan saat ini).

terima kasih @matthew-dean untuk memperbaiki https://github.com/less/less.js/issues/3123 , itulah alasan saya bahkan mendapatkan kesalahan ini di build rilis saya. Jadi jangan khawatir @robhuzzey itu berhasil dengan menurunkan versi secara manual sebelum ini diperbaiki.

Masalah ini masih berlanjut di rilis 3.0.1.
Saya menurunkan versi secara manual ke rilis 2.7.3 untuk menyelesaikan masalah.

@allentcm Itu tidak masuk akal. Less 2.7.3 tidak mengimpor dari folder node_modules sama sekali.

@matthew-dean @allentcm menurunkan versi ke 2.7.3 juga berhasil untuk saya

@matthew-dean @allentcm @babsonmatt menurunkan versi ke 2.7.3 juga berhasil untuk saya 👍

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

heavyk picture heavyk  ·  3Komentar

renoth picture renoth  ·  6Komentar

awebdev picture awebdev  ·  4Komentar

vecerek picture vecerek  ·  5Komentar

pknepper picture pknepper  ·  3Komentar