【发布时间】:2020-11-10 07:25:21
【问题描述】:
我的项目结构有一个用于全局设置等的 SCSS 库,主要组件 scss 模块位于其他地方,并带有相应的组件文件。我的 Webpack 设置为在构建时解析路径别名 @,因此在运行项目时我对 @import "@/src/scss/variables/blah-blah.scss" 等行的使用效果很好。
相反,我有一些实用程序脚本用于进行 SCSS 基准测试,只是一些编译和分析操作来帮助说明我们在进行样式更改时的性能提升。我使用 .mjs 文件扩展名构建了这些文件,我认为这在这里并不重要,它只是帮助与 Typescript 一起玩。
所以当 Node Sass 遇到像 @import "@/src/scss/variables/blah-blah.scss" 这样的路径时,它不会解析路径。这并不奇怪,但我似乎找不到最好的解决方案来帮助解决我的脚本中的路径,而不是添加 NPM 包来完成看似简单的工作。我应该如何处理这个问题?
错误来自await sass.render()
import { writeFileSync } from "fs";
import sass from "node-sass";
import tildeImporter from "node-sass-tilde-importer";
import { resolve } from "path";
export const compileCSS = async module => {
const input = `src/components/${module}/scss/module.scss`;
const output = `stats/css/${module}.css`;
await sass.render(
{
file: resolve(input),
importer: tildeImporter,
outputStyle: "expanded",
outFile: resolve(output),
sourceMap: true
},
async function(error, result) {
if (error) {
await console.log(module, "COMPILE ERROR", error.message);
} else {
writeFileSync(resolve(output), result);
return result;
}
}
);
};
【问题讨论】:
标签: javascript node.js sass node-sass