UNPKG

@inkline/plugin

Version:

<p align="center"> <a href="https://inkline.io/"> <img src="https://raw.githubusercontent.com/inkline/inkline.io/main/assets/images/logo/logo-black.svg" alt="Inkline" width=72 height=72> </a> </p>

82 lines (81 loc) 2.25 kB
import { defineNuxtModule, addPluginTemplate, addComponentsDir } from "@nuxt/kit"; import { join, resolve, dirname } from "path"; import { fileURLToPath } from "url"; import { createRequire } from "module"; import { watch } from "./plugin/watch.mjs"; import { build } from "./plugin/build.mjs"; import { getResolvedOptions } from "@inkline/config"; const defaultImportOptions = { mode: "auto", styles: true, scripts: true, utilities: true }; export const module = defineNuxtModule({ meta: { name: "@inkline/nuxt", version: "3", configKey: "inkline", compatibility: { nuxt: ">=2.0.0", bridge: true } }, async setup({ import: importOptions, configFile, outputDir, extName, globals }, nuxt) { importOptions = { ...defaultImportOptions, ...importOptions }; const pluginOptions = { configFile, outputDir, extName }; const resolvedPluginOptions = getResolvedOptions(pluginOptions); const templatesDir = fileURLToPath( new URL("./templates", import.meta.url) ); const inklineRequire = createRequire(import.meta.url); if (importOptions.styles !== false) { nuxt.options.css = nuxt.options.css || []; nuxt.options.css.unshift( `${resolvedPluginOptions.outputDir}/index.scss` ); nuxt.options.css.unshift("@inkline/inkline/css/index.scss"); if (importOptions.utilities !== false) { nuxt.options.css.push("@inkline/inkline/css/utilities.scss"); } } nuxt.options.build.transpile.push("@inkline/inkline"); if (importOptions.scripts !== false) { addPluginTemplate({ mode: "all", src: resolve(templatesDir, "nuxt.ejs"), write: true, filename: "inkline.mjs", options: globals || {} }); } await addComponentsDir({ path: join( dirname(inklineRequire.resolve("@inkline/inkline")), "components" ), pathPrefix: false, pattern: "**/*.vue", ignore: ["**/examples/*.vue"], transpile: true, global: importOptions.mode === "global" }); if (nuxt.options.dev) { watch(pluginOptions); } else { build(pluginOptions); } } }); export default module;