Jawaban yang dipilih tidak menawarkan solusi yang layak.
Praktik OP sepertinya tidak teratur. File bersama / umum biasanya berada di bawah partials
, direktori boilerplate standar. Anda kemudian harus menambahkan partials
direktori ke jalur impor konfigurasi Anda untuk menyelesaikan sebagian di mana pun dalam kode Anda.
Ketika saya mengalami masalah ini untuk pertama kalinya, saya pikir SASS mungkin memberi Anda variabel global yang mirip dengan Node __dirname
, yang membuat jalur absolut ke direktori kerja saat ini ( cwd
). Sayangnya, tidak dan alasannya adalah karena interpolasi pada @import
direktif tidak memungkinkan, maka Anda tidak dapat melakukan jalur impor dinamis.
Menurut dokumen SASS .
Anda perlu mengatur :load_paths
konfigurasi Sass Anda. Karena OP menggunakan Kompas, saya akan mengikuti sesuai dengan dokumentasi di sini .
Anda dapat menggunakan solusi CLI sesuai tujuan, tetapi mengapa? jauh lebih nyaman untuk menambahkannya config.rb
. Masuk akal untuk menggunakan CLI untuk menimpa config.rb
(Misalnya, skenario build berbeda).
Jadi, dengan asumsi Anda config.rb
berada di bawah root proyek, cukup tambahkan baris berikut:
add_import_path 'sub_directory_a'
Dan sekarang @import 'common';
akan bekerja dengan baik di mana saja.
Sementara ini menjawab OP, masih ada lagi.
Lampiran
Anda cenderung mengalami kasus di mana Anda ingin mengimpor file CSS dengan cara yang disematkan, yaitu, bukan melalui @import
arahan vanilla yang disediakan CSS di luar kotak, tetapi penggabungan sebenarnya dari konten file CSS dengan SASS Anda. Ada pertanyaan lain , yang dijawab dengan tidak meyakinkan (solusinya tidak bekerja lintas lingkungan). Solusinya adalah dengan menggunakan ekstensi SASS ini .
Setelah terinstal, tambahkan baris berikut ke konfigurasi Anda: require 'sass-css-importer'
dan kemudian, di suatu tempat di kode Anda:@import 'CSS:myCssFile';
Perhatikan ekstensi harus dihilangkan agar ini berfungsi.
Namun, kami akan mengalami masalah yang sama saat mencoba mengimpor file CSS dari jalur non-default dan add_import_path
tidak mematuhi file CSS. Jadi untuk mengatasinya, Anda perlu menambahkan, baris lain di konfigurasi Anda, yang secara alami serupa:
add_import_path Sass::CssImporter::Importer.new('sub_directory_a')
Sekarang semuanya akan bekerja dengan baik.
PS, saya perhatikan sass-css-importer
dokumentasi menunjukkan CSS:
awalan diperlukan selain menghilangkan .css
ekstensi. Saya menemukan itu berhasil. Seseorang memulai masalah , yang sejauh ini masih belum terjawab.
-I
? Jika nama jalur itu berubah, akan ada banyak pencarian dan penggantian; dan itu membutuhkan struktur folder lokal yang sama dari siapa pun yang berbagi .scss