2 回答

TA貢獻1876條經驗 獲得超5個贊
您只需使用 NodeJS 加載 CSS 文件的內容fs.readFileSync
。
const fs = require('fs');
try {
const documentStyles = fs.readFileSync('styles/style.css');
const document = `
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<style>
${documentStyles}
</style>
</head>
<body>
<p>Here's the test</p>
</body>
</html>
`;
} catch(e) {
console.log('Error:', e.stack);
}

TA貢獻1817條經驗 獲得超6個贊
正如 Christos Lytras 所指出的,通過文件系統 (fs) 模塊在節點中獲取文件的字符串內容非常容易,但是如果您關心的是如何通過 API 獲取 JavaScript 可以使用的對象,您可能需要 CSSStyleSheet應用程序接口。
這個對象有一個.cssRules
屬性,它包含一個類似數組的 cssRule對象列表。您將遍歷這些并檢查它們的type
屬性(因為不同的規則類型具有不同的內部結構)。
大多數將具有type: 1
,這意味著它們是 cssStyleRule對象,它們具有:
一個
selector
屬性(如.my-awesome-class
),以及一個
style
屬性(如{ font-size: 1.5em; color: hotpink; }
)。
一旦達到這個級別,您可能需要使用正則表達式解析選擇器和樣式,除非它們都非常簡單。您將構建一個自定義對象以分配給您的documentStyles
變量。
除此之外,您還需要將 CSS 的kebab-case
名稱轉換為 JavaScript 的camelCase
格式(或者您可能會在網上找到可以為您完成此操作的代碼。)
(這個問題的答案為您提供了一個深入研究樣式表以查找特定規則并檢查其樣式屬性的示例。)
添加回答
舉報