Seçilen cevap geçerli bir çözüm sunmuyor.
OP'nin uygulaması düzensiz görünüyor. Paylaşılan / ortak bir dosya normalde partials
standart bir ortak metin dizininin altında bulunur . Daha sonra partials
kodunuzun herhangi bir yerinde kısmi sorunları çözmek için yapılandırma içe aktarma yollarınıza dizin eklemelisiniz .
Bu sorunla ilk kez karşılaştığımda, SASS'nin muhtemelen size Node'unkine benzer bir global değişken verdiğini __dirname
ve mevcut çalışma dizini ( cwd
) için mutlak bir yol tuttuğunu düşündüm . Maalesef öyle değil ve nedeni bir @import
direktif üzerinde enterpolasyonun mümkün olmaması, dolayısıyla dinamik bir içe aktarma yolu yapamazsınız.
SASS belgelerine göre .
:load_paths
Sass yapılandırmanızda ayarlamanız gerekir . OP Pusula'yı kullandığından, bunu buradaki belgelere göre takip edeceğim .
CLI çözümünü amaçlandığı gibi kullanabilirsiniz, ancak neden? eklemek çok daha uygun config.rb
. Geçersiz kılmak için CLI kullanmak mantıklı olacaktır config.rb
(Örneğin, farklı oluşturma senaryoları).
Bu nedenle, config.rb
projenizin kök dizininde olduğunu varsayarak , aşağıdaki satırı ekleyin:
add_import_path 'sub_directory_a'
Ve şimdi @import 'common';
her yerde gayet iyi çalışacak.
Bu OP'yi yanıtlarken, daha fazlası var.
Ek
Bir CSS dosyasını gömülü bir şekilde, yani @import
CSS'nin kutunun dışında sağladığı vanilya yönergesi aracılığıyla değil , bir CSS dosyası içeriğinin SASS'nizle gerçek bir şekilde birleştirilmesi yoluyla içe aktarmak istediğiniz durumlarla karşılaşmanız olasıdır . Kesin olmayan bir şekilde yanıtlanan başka bir soru daha var (çözüm ortamlar arası çalışmıyor). Çözüm, bu SASS uzantısını kullanmaktır .
Kurulduktan sonra, aşağıdaki satırı yapılandırmanıza ekleyin: require 'sass-css-importer'
ve ardından, kodunuzda bir yere:@import 'CSS:myCssFile';
Bunun çalışması için uzantının atlanması gerektiğine dikkat edin.
Ancak, bir CSS dosyasını varsayılan olmayan bir yoldan içe aktarmaya çalışırken aynı sorunla karşılaşacağız ve add_import_path
CSS dosyalarına uymayacağız. Bunu çözmek için, yapılandırmanıza doğal olarak benzer olan başka bir satır eklemeniz gerekir:
add_import_path Sass::CssImporter::Importer.new('sub_directory_a')
Şimdi her şey güzel çalışacak.
Not: sass-css-importer
Belgelerin CSS:
, .css
uzantının çıkarılmasına ek olarak bir ön ek gerektiğini gösterdiğini fark ettim . Ne olursa olsun işe yaradığını öğrendim. Birisi şimdiye kadar cevapsız kalan bir konu başlattı .
-I
mi? Bu yol adı değişirse, pek çok arama ve değiştirme işlemi olacaktır; ve .scss paylaşan herkesle aynı yerel klasör yapısını gerektirir