fix(cli): resolve npm mobules when compile less

This commit is contained in:
陈嘉涵
2019-12-16 16:20:17 +08:00
parent 8641b8b256
commit b3993dd653
7 changed files with 24 additions and 19 deletions
+19 -3
View File
@@ -1,10 +1,26 @@
// @ts-ignore
import { render, FileManager } from 'less';
import { readFileSync } from 'fs-extra';
import { render as renderLess } from 'less';
// less plugin to resolve tilde
class TildeResolver extends FileManager {
loadFile(filename: string, ...args: any[]) {
filename = filename.replace('~', '');
return FileManager.prototype.loadFile.apply(this, [filename, ...args]);
}
}
const TildeResolverPlugin = {
install(lessInstance: unknown, pluginManager: any) {
pluginManager.addFileManager(new TildeResolver());
}
};
export async function compileLess(filePath: string) {
const source = readFileSync(filePath, 'utf-8');
const { css } = await renderLess(source, {
filename: filePath
const { css } = await render(source, {
filename: filePath,
plugins: [TildeResolverPlugin]
});
return css;
@@ -1,6 +1,6 @@
import { renderSync as renderSass } from 'sass';
import { renderSync } from 'sass';
export async function compileSass(filePath: string) {
const { css } = renderSass({ file: filePath });
const { css } = renderSync({ file: filePath });
return css;
}