generated from alecodes/base-template
feat: add plugin
This commit is contained in:
parent
b7452c7996
commit
fa09b9e48a
5 changed files with 236 additions and 0 deletions
33
index.ts
Normal file
33
index.ts
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
import type { BunPlugin, PluginBuilder } from "bun";
|
||||
import type { FileImporter } from "sass";
|
||||
|
||||
const nodeModuleImporter: FileImporter<"async"> = {
|
||||
findFileUrl(url: string) {
|
||||
if (url.startsWith("@")) {
|
||||
return new URL(import.meta.resolve(url));
|
||||
}
|
||||
|
||||
return null;
|
||||
},
|
||||
};
|
||||
|
||||
const sassPlugin: BunPlugin = {
|
||||
name: "Sass Loader",
|
||||
async setup(build: PluginBuilder) {
|
||||
const sass = await import("sass");
|
||||
|
||||
build.onLoad({ filter: /\.scss$/ }, async ({ path }) => {
|
||||
const result = await sass.compileAsync(path, {
|
||||
importers: [nodeModuleImporter],
|
||||
});
|
||||
|
||||
return {
|
||||
loader: "css",
|
||||
contents: result.css,
|
||||
};
|
||||
});
|
||||
},
|
||||
};
|
||||
|
||||
export default sassPlugin;
|
||||
|
||||
Loading…
Add table
Add a link
Reference in a new issue