คำตอบที่เลือกไม่ได้นำเสนอวิธีแก้ปัญหาที่เป็นไปได้
การปฏิบัติของ OP ดูเหมือนผิดปกติ ไฟล์ที่ใช้ร่วมกัน / ทั่วไปมักจะอยู่ภายใต้partials
ไดเร็กทอรีสำเร็จรูปมาตรฐาน จากนั้นคุณควรเพิ่มpartials
ไดเร็กทอรีในพา ธ การนำเข้า config ของคุณเพื่อแก้ไขบางส่วนที่ใดก็ได้ในโค้ดของคุณ
เมื่อฉันพบปัญหานี้เป็นครั้งแรกฉันคิดว่า SASS อาจให้ตัวแปรส่วนกลางที่คล้ายกับ Node __dirname
ซึ่งเก็บเส้นทางที่แน่นอนไปยังไดเร็กทอรีการทำงานปัจจุบัน ( cwd
) น่าเสียดายที่ไม่เป็นเช่นนั้นและสาเหตุที่เป็นเพราะการแก้ไข@import
คำสั่งไม่สามารถทำได้ด้วยเหตุนี้คุณจึงไม่สามารถสร้างเส้นทางการนำเข้าแบบไดนามิกได้
ตามเอกสาร SASS
คุณต้องตั้งค่า:load_paths
ในการกำหนดค่าSass ของคุณ ตั้งแต่ OP ใช้เข็มทิศผมจะทำตามที่มีตามเอกสารที่นี่
คุณสามารถใช้โซลูชัน CLI ได้ตามวัตถุประสงค์ แต่ทำไม? config.rb
ก็สะดวกสบายมากขึ้นเพื่อเพิ่มไปยัง ควรใช้ CLI ในการลบล้างconfig.rb
(เช่นสถานการณ์การสร้างที่แตกต่างกัน)
ดังนั้นสมมติว่าคุณconfig.rb
อยู่ภายใต้รูทโปรเจ็กต์เพียงเพิ่มบรรทัดต่อไปนี้:
add_import_path 'sub_directory_a'
และตอนนี้@import 'common';
จะทำงานได้ดีทุกที่
ในขณะที่คำตอบนี้ OP มีมากกว่านั้น
ภาคผนวก
คุณมีแนวโน้มที่จะวิ่งเข้ามาในกรณีที่คุณต้องการนำเข้าไฟล์ CSS ในลักษณะที่ฝังตัวอยู่, ที่อยู่, ไม่ผ่านวานิลลา@import
CSS สั่งให้ออกจากกล่อง แต่จริงผสานของเนื้อหาของไฟล์ CSS กับ SASS ของคุณ มีคำถามอื่นซึ่งได้รับคำตอบอย่างไม่ชัดเจน (วิธีแก้ปัญหาไม่ทำงานข้ามสภาพแวดล้อม) การแก้ปัญหาก็คือจะใช้นี้ขยาย SASS
เมื่อติดตั้งแล้วให้เพิ่มบรรทัดต่อไปนี้ใน config ของคุณ: require 'sass-css-importer'
จากนั้นบางส่วนในโค้ดของคุณ:@import 'CSS:myCssFile';
โปรดสังเกตว่าส่วนขยายจะต้องถูกละไว้เพื่อให้สามารถใช้งานได้
อย่างไรก็ตามเราจะพบปัญหาเดียวกันเมื่อพยายามนำเข้าไฟล์ CSS จากเส้นทางที่ไม่ใช่ค่าเริ่มต้นและadd_import_path
ไม่เคารพไฟล์ CSS ดังนั้นในการแก้ปัญหาคุณต้องเพิ่มอีกบรรทัดใน config ของคุณซึ่งคล้ายกันโดยธรรมชาติ:
add_import_path Sass::CssImporter::Importer.new('sub_directory_a')
ตอนนี้ทุกอย่างจะทำงานได้ดี
ปล. ฉันสังเกตเห็นsass-css-importer
เอกสารระบุว่าCSS:
จำเป็นต้องใช้คำนำหน้านอกเหนือจากการละเว้น.css
ส่วนขยาย ฉันพบว่ามันใช้งานได้โดยไม่คำนึงถึง มีคนเริ่มต้นปัญหาซึ่งยังไม่มีคำตอบจนถึงตอนนี้
-I
หรือ? หากชื่อพา ธ นั้นเปลี่ยนไปจะมีการค้นหาและแทนที่มากมาย และต้องใช้โครงสร้างโฟลเดอร์ในเครื่องเดียวกันกับทุกคนที่แชร์ไฟล์. scss