vite-plugin-inject

1.0.1 • Public • Published

Vite-Plugin-Inject

Inject files into Vite output.

This plugin takes a list of file definition and simply writes them into the /dist directory (or wherever Vite is configured to output).

# vite.config.js
import pluginInject from 'vite-plugin-inject';

export default {
    plugins: [
        pluginInject([

            { // An example humans.txt file injected into /dist/humans.txt
                name: 'humans.txt',
                content() { return [
                    '/' + '* TEAM *' + '/',
                    'Developer: Matt Carter',
                    'Contact: contact@acme.com',
                    'Location: Gold Coast, Australia',
                    '',
                    '',
                    '/' + '* SITE *' + '/',
                    `Last update: ${(new Date()).toISOString().substr(0, 10).replace(/-/g, '\/')}`,
                    'Doctype: HTML5',
                    'Standards: HTML5, CSS3, JavaScript ES2024',
                    'Components: Vue',
                ]},
            },

            {
                name: 'robots.txt',
                content() { return [
                    'User-agent: *',
                    'Allow: /',
                    'Disallow: /login',
                    'Disallow: /profile',
                    '',
                    'Sitemap: https://acme.com/sitemap.xml',
                ]},
            },

            {
                name: 'sitemap.xml',
                async content() {
                    let {default: routes} = await import('./routes.js');

                    return [
                        '<?xml version="1.0" encoding="UTF-8"?>',
                        '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">',
                        ...(tools
                            .flatMap(route => [
                                '\t<url>',
                                `\t\t<loc>https://acme.com${route.path}</loc>`,
                                '\t\t<changefreq>monthly</changefreq>',
                                '\t</url>',
                            ])
                        ),
                        '</urlset>',
                    ];
                },
            },
        ]),
    ],
}

API

This plugin exposes a single function which takes an array of files to output.

Each file should be an object composed of a name string and an Async content function which returns the content. The content will be collapsed into a line-delimited string if an array is returned.

Readme

Keywords

Package Sidebar

Install

npm i vite-plugin-inject

Weekly Downloads

10

Version

1.0.1

License

MIT

Unpacked Size

6.01 kB

Total Files

4

Last publish

Collaborators

  • hash-bang