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
格式(或者您可能会在网上找到可以为您完成此操作的代码。)
(这个问题的答案为您提供了一个深入研究样式表以查找特定规则并检查其样式属性的示例。)
添加回答
举报