@inkline/nuxt
Version:
Nuxt.js Module for Inkline, the intuitive UI Components library that gives you the foundation for building high-quality, accessible, and customizable Vue.js Design Systems.
39 lines (36 loc) • 1.23 kB
JavaScript
import { defineNuxtModule, addPluginTemplate, addComponentsDir } from '@nuxt/kit';
import { resolve, join, dirname } from 'path';
import { fileURLToPath } from 'url';
import { createRequire } from 'module';
const module = defineNuxtModule({
meta: {
name: "@inkline/nuxt",
version: "3",
configKey: "inkline",
compatibility: {
nuxt: ">=2.0.0",
bridge: true
}
},
setup: async ({ sassVariables, css, global, ...moduleOptions }, { options }) => {
const runtimeDir = fileURLToPath(new URL("./runtime", import.meta.url));
const inklineRequire = createRequire(import.meta.url);
if (css !== false) {
options.css = (sassVariables || []).concat(["@inkline/inkline/inkline.scss"]).concat(options.css || []);
}
options.build.transpile.push("@inkline/inkline");
addPluginTemplate({
src: resolve(runtimeDir, "plugin.ejs"),
options: moduleOptions
});
await addComponentsDir({
path: join(dirname(inklineRequire.resolve("@inkline/inkline")), "components"),
pathPrefix: false,
pattern: "**/*.vue",
ignore: ["**/examples/*.vue"],
transpile: true,
global: global !== false
});
}
});
export { module as default, module };