คำเตือน: Node Sass หมดอายุการใช้งานแล้ว จะไม่มีการเผยแพร่อีกต่อไป แม้แต่การแก้ไขด้านความปลอดภัยก็ตาม โครงการที่ยังคงใช้อยู่ควรย้ายไปยัง Dart Sass
เวอร์ชันของ Node.js ที่รองรับจะแตกต่างกันไปตามรุ่น โปรดดูที่หน้าการเผยแพร่
เวอร์ชันของโหนดที่สิ้นสุดอายุการใช้งาน https://github.com/nodejs/Release จะถูกละทิ้งจากการสนับสนุนในแต่ละรุ่นของ node-sass (หลัก, รอง)
เราจะหยุดสร้างไบนารีสำหรับรุ่นที่ไม่ได้รับการสนับสนุน การทดสอบการแตกหักในความเข้ากันได้ของการพึ่งพา แต่เราจะไม่บล็อกการติดตั้งสำหรับผู้ที่ต้องการสนับสนุนตนเอง
การเปิดตัวโหนดใหม่ต้องมีการเปลี่ยนแปลงภายในเล็กน้อยพร้อมกับการสนับสนุนจากผู้ให้บริการ CI (AppVeyor, GitHub Actions) เราจะเปิดประเด็นเดียวให้ผู้สนใจสมัครติดตามและปิดประเด็นเพิ่มเติม
ด้านล่างนี้เป็นคำแนะนำโดยย่อสำหรับเวอร์ชันขั้นต่ำและสูงสุดที่รองรับของ node-sass:
โหนดJS | รองรับเวอร์ชัน node-sass | โมดูลโหนด |
---|---|---|
โหนด 20 | 9.0+ | 115 |
โหนด 19 | 8.0+ | 111 |
โหนด 18 | 8.0+ | 108 |
โหนด 17 | 7.0+, <8.0 | 102 |
โหนด 16 | 6.0+ | 93 |
โหนด 15 | 5.0+, <7.0 | 88 |
โหนด 14 | 4.14+, <9.0 | 83 |
โหนด 13 | 4.13+, <5.0 | 79 |
โหนด 12 | 4.12+, <8.0 | 72 |
โหนด 11 | 4.10+, <5.0 | 67 |
โหนด 10 | 4.9+, <6.0 | 64 |
โหนด 8 | 4.5.3+, <5.0 | 57 |
โหนด <8 | <5.0 | <57 |
ช่วยให้คุณสามารถคอมไพล์ไฟล์ .scss ให้เป็น css ด้วยความเร็วอันเหลือเชื่อและโดยอัตโนมัติผ่านมิดเดิลแวร์การเชื่อมต่อ
ค้นหาได้ในเวลา npm: https://www.npmjs.com/package/node-sass
ติดตาม @nodesass บน Twitter เพื่อรับการอัปเดต: https://twitter.com/nodesass
npm ติดตั้ง node-sass
ผู้ใช้บางรายได้รายงานปัญหาในการติดตั้งบน Ubuntu เนื่องจากมีการลงทะเบียน node
กับแพ็คเกจอื่น ปฏิบัติตามเอกสาร NodeJS อย่างเป็นทางการเพื่อติดตั้ง NodeJS เพื่อให้โหนด #!/usr/bin/env node
แก้ไขได้อย่างถูกต้อง
การคอมไพล์บนเครื่อง Windows จำเป็นต้องมีข้อกำหนดเบื้องต้นของ node-gyp
คุณเห็นข้อผิดพลาดต่อไปนี้หรือไม่ ดูคู่มือการแก้ไขปัญหาของเรา**
SyntaxError: Use of const in strict mode.
มีปัญหาในการติดตั้ง? ดูคู่มือการแก้ไขปัญหาของเรา
ติดตั้ง npm -g mirror-config-china --registry=https://registry.npmmirror.com npm ติดตั้ง node-sass
var sass = ต้องการ ('node-sass'); sass.render ({ ไฟล์: scss_filename, [, ตัวเลือก..]}, ฟังก์ชั่น (ผิดพลาด, ผลลัพธ์) { /*...*/ });// ORvar result = sass.renderSync({ ข้อมูล: scss_content [, ตัวเลือก..]});
ประเภท: String
ค่าเริ่มต้น: null
พิเศษ : ต้องระบุ file
หรือ data
พาธไปยังไฟล์เพื่อให้ LibSass คอมไพล์
ประเภท: String
ค่าเริ่มต้น: null
พิเศษ : ต้องระบุ file
หรือ data
สตริงที่จะส่งผ่านไปยัง LibSass เพื่อคอมไพล์ ขอแนะนำให้คุณใช้ includePaths
ร่วมกับสิ่งนี้เพื่อให้ LibSass สามารถค้นหาไฟล์ได้เมื่อใช้คำสั่ง @import
นี่คือฟีเจอร์ LibSass รุ่นทดลอง ใช้ด้วยความระมัดระวัง
ประเภท: Function | Function[]
function(url, prev, done)
ค่าเริ่มต้น: undefined
พารามิเตอร์และข้อมูลฟังก์ชัน:
url (String)
- เส้นทางในการนำเข้า ตามที่เป็น ซึ่ง LibSass พบ
prev (String)
- เส้นทางที่แก้ไขก่อนหน้านี้
done (Function)
- ฟังก์ชั่นการโทรกลับเพื่อเรียกใช้เมื่อเสร็จสิ้น async รับวัตถุตามตัวอักษรที่มี
file (String)
- เส้นทางอื่นสำหรับ LibSass ที่จะใช้ หรือ
contents (String)
- เนื้อหาที่นำเข้า (เช่น อ่านจากหน่วยความจำหรือระบบไฟล์)
จัดการเมื่อ LibSass พบคำสั่ง @import
ผู้นำเข้าแบบกำหนดเองอนุญาตให้ขยายเอ็นจิ้น LibSass ทั้งในลักษณะซิงโครนัสและอะซิงโครนัส ในทั้งสองกรณี เป้าหมายคือการ return
หรือเรียก done()
ด้วยอ็อบเจ็กต์สัญพจน์ ขึ้นอยู่กับมูลค่าของวัตถุตามตัวอักษร หนึ่งในสองสิ่งนี้จะเกิดขึ้น
เมื่อส่งคืนหรือโทร done()
ด้วย { file: "String" }
ระบบจะถือว่าเส้นทางไฟล์ใหม่สำหรับ @import
ขอแนะนำให้คำนึงถึงค่าของ prev
ในกรณีที่อาจจำเป็นต้องมีการแก้ไขเส้นทางสัมพัทธ์
เมื่อส่งคืนหรือเรียก done()
ด้วย { contents: "String" }
ค่าสตริงจะถูกใช้เหมือนกับว่าไฟล์ถูกอ่านผ่านแหล่งภายนอก
เริ่มต้นจาก v3.0.0:
this
อ้างถึงขอบเขตตามบริบทสำหรับการเรียกใช้ sass.render
หรือ sass.renderSync
ในทันที
ผู้นำเข้าสามารถส่งคืนข้อผิดพลาดได้และ LibSass จะปล่อยข้อผิดพลาดนั้นเพื่อตอบสนอง ตัวอย่างเช่น:
เสร็จสิ้น (ข้อผิดพลาดใหม่ ('ไม่มีอยู่!')); // หรือส่งคืนข้อผิดพลาดใหม่พร้อมกัน ('ไม่มีอะไรให้ทำที่นี่');
importer สามารถเป็นอาร์เรย์ของฟังก์ชัน ซึ่ง LibSass จะถูกเรียกตามลำดับที่ปรากฏในอาร์เรย์ ซึ่งจะช่วยให้ผู้ใช้ระบุผู้นำเข้าพิเศษสำหรับพาธบางประเภท (ระบบไฟล์, http) หากผู้นำเข้าไม่ต้องการจัดการเส้นทางใดเส้นทางหนึ่ง ก็ควรส่งคืน null
ดูส่วนฟังก์ชั่นสำหรับรายละเอียดเพิ่มเติมเกี่ยวกับประเภท Sass
นี่คือฟีเจอร์ LibSass รุ่นทดลอง ใช้ด้วยความระมัดระวัง
functions
เป็น Object
ที่เก็บคอลเลกชันของฟังก์ชันแบบกำหนดเองที่อาจเรียกใช้โดยไฟล์ sass ที่กำลังคอมไพล์ พวกเขาอาจใช้พารามิเตอร์อินพุตเป็นศูนย์หรือมากกว่าและต้องส่งคืนค่าแบบซิงโครนัส ( return ...;
) หรือแบบอะซิงโครนัส ( done();
) พารามิเตอร์เหล่านั้นจะเป็นอินสแตนซ์ของหนึ่งในคอนสตรัคเตอร์ที่มีอยู่ในไฟล์ require('node-sass').types
hash ค่าที่ส่งคืนต้องเป็นประเภทใดประเภทหนึ่งเหล่านี้เช่นกัน ดูรายการประเภทที่มีอยู่ด้านล่าง:
getValue()
/ setValue(value)
: รับ / ตั้งค่าส่วนตัวเลขของตัวเลข
getUnit()
/ setUnit(unit)
: รับ / ตั้งค่าส่วนหน่วยของตัวเลข
getValue()
/ setValue(value)
: รับ / ตั้งค่าสตริงที่ล้อมรอบ
getR()
/ setR(value)
: องค์ประกอบสีแดง (จำนวนเต็มตั้งแต่ 0
ถึง 255
)
getG()
/ setG(value)
: องค์ประกอบสีเขียว (จำนวนเต็มตั้งแต่ 0
ถึง 255
)
getB()
/ setB(value)
: องค์ประกอบสีน้ำเงิน (จำนวนเต็มตั้งแต่ 0
ถึง 255
)
getA()
/ setA(value)
: องค์ประกอบอัลฟ่า (ตัวเลขตั้งแต่ 0
ถึง 1.0
)
ตัวอย่าง:
var Color = ต้องการ ('node-sass').types.Color, c1 = สีใหม่ (255, 0, 0), c2 = สีใหม่ (0xff0088cc);
getValue()
: รับบูลีนที่ปิดล้อม
types.Boolean.TRUE
: อินสแตนซ์ซิงเกิลตันของ types.Boolean
ที่เก็บ "จริง"
types.Boolean.FALSE
: อินสแตนซ์ซิงเกิลตันของ types.Boolean
ที่เก็บ "false"
getValue(index)
/ setValue(index, value)
: value
จะต้องเป็นอินสแตนซ์ของหนึ่งใน Constructor ใน sass.types
getSeparator()
/ setSeparator(isComma)
: จะใช้เครื่องหมายจุลภาคเป็นตัวคั่นหรือไม่
getLength()
getKey(index)
/ setKey(index, value)
getValue(index)
/ setValue(index, value)
getLength()
types.Null.NULL
: อินสแตนซ์ซิงเกิลตันของ types.Null
sass.renderSync({ ข้อมูล: '#{ส่วนหัว (2,5)} { สี: #08c; - ฟังก์ชั่น: {'headings($from: 0, $to: 6)': function(from, to) { var i, f = from.getValue(), t = to.getValue(), list = new sass.types .รายการ(t - f + 1); สำหรับ (i = f; i <= t; i++) {list.setValue(i - f, new sass.types.String('h' + i)); } รายการส่งคืน;} -
ประเภท: Array<String>
ค่าเริ่มต้น: []
อาร์เรย์ของเส้นทางที่ LibSass สามารถตรวจสอบเพื่อพยายามแก้ไขการประกาศ @import
ของคุณ เมื่อใช้ data
ขอแนะนำให้คุณใช้สิ่งนี้
ประเภท: Boolean
ค่าเริ่มต้น: false
ค่า true
เปิดใช้งาน Sass Indented Syntax เพื่อแยกวิเคราะห์สตริงข้อมูลหรือไฟล์
หมายเหตุ: node-sass/libsass จะคอมไพล์ไลบรารีผสมของไฟล์ scss และไวยากรณ์เยื้อง (.sass) ด้วยการตั้งค่าเริ่มต้น (false) ตราบใดที่ใช้นามสกุล .sass และ .scss ในชื่อไฟล์
ประเภท: String
ค่าเริ่มต้น: space
ใช้เพื่อกำหนดว่าจะใช้ช่องว่างหรืออักขระแท็บสำหรับการเยื้อง
ประเภท: Number
ค่าเริ่มต้น: 2
สูงสุด: 10
ใช้เพื่อกำหนดจำนวนช่องว่างหรือแท็บที่จะใช้สำหรับการเยื้อง
ประเภท: String
ค่าเริ่มต้น: lf
ใช้เพื่อกำหนดว่าจะใช้ลำดับ cr
, crlf
, lf
หรือ lfcr
สำหรับการขึ้นบรรทัดใหม่หรือไม่
ประเภท: Boolean
ค่าเริ่มต้น: false
พิเศษ: เมื่อใช้สิ่งนี้ คุณควรระบุ outFile
ด้วยเพื่อหลีกเลี่ยงพฤติกรรมที่ไม่คาดคิด
ค่า true
จะปิดใช้งานการรวมข้อมูลแผนที่ต้นฉบับในไฟล์เอาต์พุต
ประเภท: String | null
ค่าเริ่มต้น: null
พิเศษ: จำเป็นเมื่อ sourceMap
เป็นค่าความจริง
ระบุตำแหน่งที่ต้องการของไฟล์เอาต์พุต ขอแนะนำอย่างยิ่งเมื่อส่งออกแมปต้นฉบับเพื่อให้สามารถอ้างอิงกลับไปยังไฟล์ที่ต้องการได้อย่างเหมาะสม
การเปิดใช้ งาน ตัวเลือกนี้จะ ไม่ เขียนไฟล์ลงในดิสก์สำหรับคุณ แต่มีวัตถุประสงค์เพื่อการอ้างอิงภายในเท่านั้น (เช่น สร้างแผนที่ เป็นต้น)
ตัวอย่างการเขียนลงดิสก์
sass.render({...outFile: yourPathTotheFile, }, function(error, result) { // node-style callback from v3.0.0 onwardsif(!error){ // ไม่มีข้อผิดพลาดระหว่างการคอมไพล์ เขียนผลลัพธ์นี้บนดิสก์ fs.writeFile(yourPathTotheFile, result.css, function (ผิดพลาด){if(!err){ //ไฟล์ที่เขียนบนดิสก์} });} -
ประเภท: String
ค่าเริ่มต้น: nested
ค่า: nested
, expanded
, compact
, compressed
กำหนดรูปแบบผลลัพธ์ของสไตล์ CSS สุดท้าย
ประเภท: Integer
ค่าเริ่มต้น: 5
ใช้เพื่อกำหนดว่าจะอนุญาตให้ใช้ตัวเลขหลังทศนิยมได้กี่หลัก ตัวอย่างเช่น หากคุณมีเลขทศนิยม 1.23456789
และความแม่นยำ 5
ผลลัพธ์จะเป็น 1.23457
ใน CSS สุดท้าย
ประเภท: Boolean
ค่าเริ่มต้น: false
true
เปิดใช้งานหมายเลขบรรทัดและไฟล์ที่กำหนดตัวเลือกให้ส่งลงใน CSS ที่คอมไพล์แล้วเป็นความคิดเห็น มีประโยชน์สำหรับการดีบัก โดยเฉพาะอย่างยิ่งเมื่อใช้การนำเข้าและมิกซ์อิน
ประเภท: Boolean | String | undefined
ค่าเริ่มต้น: undefined
เปิดใช้งานการสร้างแผนที่ต้นทางระหว่าง render
และ renderSync
เมื่อ sourceMap === true
ค่าของ outFile
จะถูกใช้เป็นตำแหน่งเอาต์พุตเป้าหมายสำหรับแมปต้นทางโดยมีคำต่อท้าย .map
ต่อท้าย หากไม่มีการตั้ง outFile
พารามิเตอร์ sourceMap
จะถูกละเว้น
เมื่อ typeof sourceMap === "string"
ค่าของ sourceMap
จะถูกใช้เป็นตำแหน่งการเขียนสำหรับไฟล์
ประเภท: Boolean
ค่าเริ่มต้น: false
true
รวม contents
ในข้อมูลแผนที่ต้นทาง
ประเภท: Boolean
ค่าเริ่มต้น: false
true
ฝังแผนที่ต้นทางเป็น URI ข้อมูล
ประเภท: String
ค่าเริ่มต้น: undefined
ค่าจะถูกส่งออกมาเป็น sourceRoot
ในข้อมูลแผนที่ต้นทาง
render
การโทรกลับ (>= v3.0.0) node-sass รองรับการเรียกกลับแบบอะซิงโครนัสสไตล์โหนดมาตรฐานพร้อมลายเซ็นต์ของ function(err, result)
ในเงื่อนไขข้อผิดพลาด อาร์กิวเมนต์ข้อ error
จะถูกเติมด้วยออบเจ็กต์ข้อผิดพลาด ในเงื่อนไขความสำเร็จ ออบเจ็กต์ result
จะถูกเติมด้วยออบเจ็กต์ที่อธิบายผลลัพธ์ของการเรียกแสดงผล
message
(สตริง) - ข้อความแสดงข้อผิดพลาด
line
(หมายเลข) - หมายเลขบรรทัดของข้อผิดพลาด
column
(หมายเลข) - หมายเลขคอลัมน์ของข้อผิดพลาด
status
(ตัวเลข) - รหัสสถานะ
file
(สตริง) - ชื่อไฟล์ของข้อผิดพลาด ในกรณีที่ไม่ได้ตั้งค่าตัวเลือก file
(เพื่อ data
) สิ่งนี้จะสะท้อนถึงค่า stdin
css
(บัฟเฟอร์) - CSS ที่คอมไพล์แล้ว เขียนสิ่งนี้ลงในไฟล์หรือให้บริการตามความจำเป็น
map
(บัฟเฟอร์) - แผนที่ต้นฉบับ
stats
(Object) - ออบเจ็กต์ที่มีข้อมูลเกี่ยวกับการคอมไพล์ ประกอบด้วยคีย์ต่อไปนี้:
entry
(สตริง) - พาธไปยังไฟล์ scss หรือ data
หากแหล่งที่มาไม่ใช่ไฟล์
start
(Number) - Date.now() ก่อนการคอมไพล์
end
(Number) - Date.now() หลังจากการคอมไพล์
duration
(จำนวน) - สิ้นสุด - เริ่มต้น
includedFiles
(Array) - เส้นทางที่แน่นอนไปยังไฟล์ scss ที่เกี่ยวข้องทั้งหมดโดยไม่มีลำดับใดเป็นพิเศษ
var sass = ต้องการ ('node-sass'); sass.render ({ ไฟล์: '/path/to/myFile.scss', ข้อมูล: 'ร่างกาย{พื้นหลัง:สีน้ำเงิน; a{สี:สีดำ;}}', ผู้นำเข้า: ฟังก์ชั่น (url, ก่อนหน้า, เสร็จสิ้น) {// url เป็นเส้นทางในการนำเข้าตามที่เป็นอยู่ ซึ่ง LibSass พบ // ก่อนหน้าเป็นเส้นทางที่แก้ไขก่อนหน้านี้ // เสร็จสิ้นเป็นการโทรกลับทางเลือก ไม่ว่าจะใช้หรือส่งคืนค่าพร้อมกัน .// this.options มีแฮชตัวเลือกนี้ this.callback มี callbacksomeAsyncFunction แบบโหนด (url, ก่อนหน้า, ฟังก์ชั่น (ผลลัพธ์) { เสร็จแล้ว ({ไฟล์: result.path, // เพียงหนึ่งในนั้น จำเป็นต้องมี โปรดดูส่วน Special Behaviours.contents: result.data });});// ORvar result = someSyncFunction(url, prev);return {file: result.path, content: result.data}; - รวมเส้นทาง: [ 'lib/', 'mod/' ], outputStyle: 'compressed'}, ฟังก์ชั่น (ข้อผิดพลาด, ผลลัพธ์) { // การเรียกกลับแบบโหนดตั้งแต่ v3.0.0 เป็นต้นไป ถ้า (ข้อผิดพลาด) {console.log (error.status); // เคยเป็น "code" ใน v2x และ belowconsole.log(error.column);console.log(error.message);console.log(error.line); - อื่น {console.log(result.css.toString());console.log(result.stats);console.log(result.map.toString());// หรือดีกว่าconsole.log(JSON.stringify(result. แผนที่)); // หมายเหตุ JSON.stringify ยอมรับบัฟเฟอร์ด้วย }});// ผลลัพธ์ ORvar = sass.renderSync({ ไฟล์: '/path/to/file.scss', ข้อมูล: 'ร่างกาย{พื้นหลัง:สีน้ำเงิน; a{สี:สีดำ;}}', สไตล์เอาท์พุต: 'บีบอัด', outFile: '/to/my/output.css', sourceMap: จริง // หรือเส้นทางสัมบูรณ์หรือสัมพันธ์ (ไปยัง outFile) ผู้นำเข้า: ฟังก์ชั่น (url, ก่อนหน้า, เสร็จสิ้น) {// url เป็นเส้นทางในการนำเข้าตามที่เป็นอยู่ ซึ่ง LibSass พบ // ก่อนหน้าเป็นเส้นทางที่แก้ไขก่อนหน้านี้ // เสร็จสิ้นเป็นการโทรกลับทางเลือก ไม่ว่าจะใช้หรือส่งคืนค่าพร้อมกัน .// this.options มีตัวเลือกนี้ hashsomeAsyncFunction(url, prev, function(result){ เสร็จแล้ว({file: result.path, // ต้องมีเพียงหนึ่งตัวเลือกเท่านั้น ดูหัวข้อ พิเศษ Behaviours.contents: result.data });}); // ORvar result = someSyncFunction(url, prev);return {ไฟล์: result.path, contents: result.data}; }});console.log(result.css);console.log(result.map);console.log(result.stats);
ในกรณีที่ตั้งค่าทั้งตัวเลือก file
และ data
node-sass จะให้ความสำคัญกับ data
และใช้ file
เพื่อคำนวณเส้นทางในซอร์สแมป
ขณะนี้ข้อมูลเวอร์ชัน node-sass
และ libsass
ถูกเปิดเผยผ่านเมธอด info
:
var sass = need('node-sass');console.log(sass.info);/* มันจะแสดงผลดังนี้: node-sass 2.0.1 (Wrapper) [JavaScript] libsass 3.1.0 (Sass Compiler) [ ค/ค++]*/
เนื่องจาก node-sass >=v3.0.0 เวอร์ชัน LibSass ถูกกำหนด ณ รันไทม์
รายการการใช้งานของชุมชนของ node-sass ในเครื่องมือสร้างและเฟรมเวิร์ก
@jasonsanjose ได้สร้างส่วนขยายวงเล็บตาม node-sass: https://github.com/jasonsanjose/brackets-sass เมื่อแก้ไขไฟล์ Sass ส่วนขยายจะรวบรวมการเปลี่ยนแปลงเมื่อบันทึก ส่วนขยายยังทำงานร่วมกับ Live Preview เพื่อแสดงการเปลี่ยนแปลง Sass ในเบราว์เซอร์โดยไม่ต้องบันทึกหรือคอมไพล์
ปลั๊กอิน sass อย่างเป็นทางการของ Brunch จะใช้ node-sass เป็นค่าเริ่มต้น และจะถอยกลับไปเป็น Ruby โดยอัตโนมัติหากตรวจพบการใช้ Compass: https://github.com/brunch/sass-brunch
คอมไพล์ไฟล์ .scss
ใหม่โดยอัตโนมัติสำหรับการเชื่อมต่อและแสดงเซิร์ฟเวอร์ http ที่ใช้ Express
ฟังก์ชันการทำงานนี้ถูกย้ายไปยัง node-sass-middleware
ใน node-sass v1.0.0
@ 10xLaCroixDrinker เขียนปลั๊กอิน DocPad ที่รวบรวมไฟล์ .scss
โดยใช้ node-sass: https://github.com/docpad/docpad-plugin-nodesass
@stephenway ได้สร้างส่วนขยายที่แปลง Sass เป็น CSS โดยใช้ node-sass ด้วย duo.js https://github.com/duojs/sass
@sindresorhus ได้สร้างชุดงานฮึดฮัดตาม node-sass: https://github.com/sindresorhus/grunt-sass
@dlmanning ได้สร้างปลั๊กอิน gulp sass ตาม node-sass: https://github.com/dlmanning/gulp-sass
เว็บเซิร์ฟเวอร์ Harp ของ @sintaxi รวบรวมไฟล์ .scss
โดยปริยายโดยใช้ node-sass: https://github.com/sintaxi/harp
@stevenschobert ได้สร้างปลั๊กอิน metalsmith โดยใช้ node-sass: https://github.com/stevenschobert/metalsmith-sass
@fourseven ได้สร้างปลั๊กอิน meteor ตาม node-sass: https://github.com/fourseven/meteor-scss
@dbashford ได้สร้างโมดูล Mimosa สำหรับ sass ซึ่งรวมถึง node-sass: https://github.com/dbashford/mimosa-sass
นอกจากนี้ยังมีตัวอย่างแอปเชื่อมต่อที่นี่: https://github.com/andrew/node-sass-example
Node-sass มีไบนารีที่คอมไพล์ไว้ล่วงหน้าสำหรับแพลตฟอร์มยอดนิยม หากต้องการเพิ่มไบนารีสำหรับแพลตฟอร์มของคุณ ให้ทำตามขั้นตอนเหล่านี้:
ตรวจสอบโครงการ:
git clone --recursive https://github.com/sass/node-sass.gitcd โหนด-sass ติดตั้ง npm node scripts/build -f # use -d switch for debug release# ถ้าสำเร็จ มันจะสร้างและย้าย # ไบนารี่ในไดเร็กทอรีผู้ขาย
อินเทอร์เฟซสำหรับการใช้งานบรรทัดคำสั่งค่อนข้างง่ายในขั้นตอนนี้ ดังที่เห็นในส่วนการใช้งานต่อไปนี้
เอาต์พุตจะถูกส่งไปยัง stdout หากละเว้นแฟล็ก --output
node-sass [options] <input> [output]
หรือ: cat <input> | node-sass > output
ตัวอย่าง:
node-sass src/style.scss dest/style.css
ตัวเลือก:
-w, --watch ดูไดเร็กทอรีหรือไฟล์ -r, --recursive ดูไดเรกทอรีหรือไฟล์แบบเรียกซ้ำ -o, --output ไดเร็กทอรีเอาต์พุต -x, --omit-source-map-url ละเว้นความคิดเห็น URL แมปแหล่งที่มาจากเอาต์พุต -i, --indented-syntax รักษาข้อมูลจาก stdin เป็นโค้ด sass (เทียบกับ scss) -q, --quiet ระงับเอาต์พุตบันทึก ยกเว้นข้อผิดพลาด -v, --version พิมพ์ข้อมูลเวอร์ชัน --output-style รูปแบบเอาต์พุต CSS (ซ้อนกัน | ขยาย | กะทัดรัด | บีบอัด) --indent-type ประเภทเยื้องสำหรับเอาต์พุต CSS (ช่องว่าง | แท็บ) --indent-width เยื้องกว้าง; จำนวนช่องว่างหรือแท็บ (ค่าสูงสุด: 10) --linefeed รูปแบบ Linefeed (cr | crlf | lf | lfcr) --source-comments รวมข้อมูลการดีบักในเอาต์พุต --source-map ปล่อยแผนที่ต้นทาง --source-map-contents ฝังรวมเนื้อหาในแผนที่ --source-map-embed ฝัง sourceMappingUrl เป็น URI ข้อมูล --source-map-root เส้นทางฐานจะถูกปล่อยออกมาใน source-map ตามที่เป็นอยู่ --include-path พาธเพื่อค้นหาไฟล์ที่นำเข้า --follow ติดตามไดเร็กทอรีที่มีลิงก์เชื่อมโยง --precision จำนวนความแม่นยำที่อนุญาตเป็นเลขทศนิยม --error-bell ส่งออกอักขระระฆังเมื่อมีข้อผิดพลาด --importer Path ไปยังไฟล์ .js ที่มีผู้นำเข้าที่กำหนดเอง --functions เส้นทางไปยังไฟล์ .js ที่มีฟังก์ชันที่กำหนดเอง --help พิมพ์ข้อมูลการใช้งาน
input
อาจเป็น .scss
หรือ .sass
รายการเดียว หรือเป็นไดเร็กทอรีก็ได้ หากอินพุตเป็นไดเร็กทอรี จะต้องระบุแฟล็ก --output
ด้วย
นอกจากนี้ หมายเหตุ --importer
ใช้เส้นทาง (สัมบูรณ์หรือสัมพันธ์กับ pwd) ไปยังไฟล์ js ซึ่งจำเป็นต้องมี module.exports
เริ่มต้นตั้งค่าเป็นฟังก์ชันผู้นำเข้า ดูตัวอย่างการแข่งขันของเรา
ตัวเลือก --source-map
ยอมรับค่าบูลีน ซึ่งในกรณีนี้จะแทนที่ส่วนขยายปลายทางด้วย . .css.map
นอกจากนี้ยังยอมรับเส้นทางไปยังไฟล์ .map
และแม้แต่เส้นทางไปยังไดเร็กทอรีที่ต้องการ เมื่อรวบรวมไดเร็กทอรี --source-map
อาจเป็นค่าบูลีนหรือไดเร็กทอรีก็ได้
node-sass รองรับพารามิเตอร์การกำหนดค่าที่แตกต่างกันเพื่อเปลี่ยนการตั้งค่าที่เกี่ยวข้องกับไบนารี sass เช่นชื่อไบนารี เส้นทางไบนารี หรือเส้นทางการดาวน์โหลดทางเลือก พารามิเตอร์ต่อไปนี้ได้รับการสนับสนุนโดย node-sass:
ชื่อตัวแปร | พารามิเตอร์ .npmrc | อาร์กิวเมนต์กระบวนการ | ค่า |
---|---|---|---|
SASS_BINARY_NAME | sass_binary_name | --sass-binary-name | เส้นทาง |
SASS_BINARY_SITE | sass_binary_site | --sass-binary-site | URL |
SASS_BINARY_PATH | sass_binary_path | --sass-binary-path | เส้นทาง |
SASS_BINARY_DIR | sass_binary_dir | --sass-binary-dir | เส้นทาง |
SASS_REJECT_UNAUTHORIZED | sass_reject_unauthorized | --sass-ปฏิเสธ-ไม่ได้รับอนุญาต | ค่า |
พารามิเตอร์เหล่านี้สามารถใช้เป็นตัวแปรสภาพแวดล้อมได้:
เช่น export SASS_BINARY_SITE=http://example.com/
เป็นไฟล์คอนฟิกูเรชัน .npmrc ภายในหรือส่วนกลาง:
เช่น sass_binary_site=http://example.com/
เป็นอาร์กิวเมนต์กระบวนการ:
เช่น npm install node-sass --sass-binary-site=http://example.com/
หากคุณใช้ใบรับรองที่ลงนามด้วยตนเองสำหรับไบนารีของคุณ SASS_REJECT_UNAUTHORIZED
จะแทนที่ (rejectUnauthorized)[https://nodejs.org/docs/latest/api/tls.html#tls_tls_createserver_options_secureconnectionlistener]
การติดตั้งรันการทดสอบ Mocha เพียงสองครั้งเพื่อดูว่าเครื่องของคุณสามารถใช้ LibSass ที่สร้างไว้ล่วงหน้าหรือไม่ ซึ่งจะช่วยประหยัดเวลาระหว่างการติดตั้ง หากการทดสอบใดล้มเหลว การทดสอบนั้นจะสร้างขึ้นจากแหล่งที่มา
โมดูลนี้มาถึงคุณและดูแลโดยบุคคลต่อไปนี้:
Michael Mifsud - หัวหน้าโครงการ (Github / Twitter)
แอนดรูว์ เนสบิตต์ (Github / Twitter)
คณบดีเหมา (Github / Twitter)
เบรตต์วิลกินส์ (Github / Twitter)
คีธ เซอร์เคิล (Github / Twitter)
ลอรองต์ Goderre (Github / Twitter)
นิค ชอนนิ่ง (Github / Twitter)
อดีล มูจาฮิด (Github / Twitter)
เรา <3 ผู้ร่วมให้ข้อมูลของเรา! ขอขอบคุณเป็นพิเศษสำหรับทุกคนที่ได้โอเวอร์คล็อกในช่วงเวลาการพัฒนาในโครงการนี้ เราซาบซึ้งจริงๆ ที่คุณทำงานหนัก คุณสามารถดูรายชื่อคนเหล่านั้นทั้งหมดได้ที่นี่
ดูคู่มือการมีส่วนร่วมของเรา
ลิขสิทธิ์ (c) 2015 แอนดรูว์ เนสบิตต์ ดูใบอนุญาตสำหรับรายละเอียด