UNPKG

vite-plugin-robots

Version:

Vite plugin for generating robots.txt for production and development builds

38 lines (37 loc) 1.25 kB
import p from "fs"; import u from "fs/promises"; import s from "path"; import r from "ansi-colors"; function m(t, i, e) { t.logger.info(""), t.logger.info(`✨ ${r.cyan("[vite-plugin-robots]")}:`); const o = s.parse(i.replace(t.root, "").replace(/^\//, "")), l = s.parse(e.replace(t.root, "").replace(/^\//, "")); t.logger.info( r.green("✓ Copied: ") + (o.dir ? r.dim(o.dir) + "/" : "") + r.blueBright(o.ext === ".local" ? o.name : o.base) + (o.ext === ".local" ? r.dim(".local") : "") + " -> " + (l.dir ? r.dim(l.dir) + "/" : "") + r.blueBright(l.base) ), t.logger.info(""); } const d = { robotsDir: "", outputRobotsFileName: "robots.txt", enableDebug: !0 }; function v(t = {}) { const i = { ...d, ...t }; let e; return { name: "vite-plugin-robots", enforce: "post", apply: "build", configResolved(o) { e = o; }, async closeBundle() { const o = `.robots.${e.mode}.txt.local`, l = s.resolve(e.root, i.robotsDir), c = p.existsSync(s.resolve(l, o)) ? o : `.robots.${e.mode}.txt`, a = s.resolve(l, c), b = e.build.outDir, n = s.resolve(b, i.outputRobotsFileName); await u.copyFile(a, n).then(() => { i.enableDebug && m(e, a, n); }); } }; } export { v as robots };