Skip to content

This repository provides a Vite plugin that allows you to set dependencies as external during development. This is essential when using import maps, ensuring that dependencies are not bundled, but are instead managed and loaded externally.

License

Notifications You must be signed in to change notification settings

MilanKovacic/vite-plugin-externalize-dependencies

Repository files navigation

Vite Plugin Externalize Dependencies npm

A simplified plugin for Vite that allows you to exclude specific dependencies from the Vite bundle during development.

The following errors/warnings are supressed:

  • The entry point [moduleName] cannot be marked as external
  • Do not know how to load path: [namespace:moduleName]
  • Failed to resolve import [dependency] from [sourceFile]. Does the file exist?
  • The following dependencies are imported but could not be resolved: [dependency] (imported by [sourceFile])

Table of Contents

Installation

To install the plugin, use npm:

npm i vite-plugin-externalize-dependencies --save-dev

Usage

After installing the plugin, import it, and add it to Vite configuration:

import { defineConfig } from "vite";
import externalize from "vite-plugin-externalize-dependencies";

export default defineConfig({
  plugins: [
    externalize({
      externals: [
        "react", // Externalize "react", and all of its subexports (react/*), such as react/jsx-runtime
        /^external-.*/, // Externalize all modules starting with "external-"
        (moduleName) => moduleName.includes("external"), // Externalize all modules containing "external",
      ],
    }),
  ],
});

Modules can be externalized by name (exact match), by regex, or by a custom function (returning true to externalize the module). The plugin will automatically externalize all subexports of a module, such as react/jsx-runtime.

Requirements

The plugin is intended to be consumed by Vite.

Contributing and Development

Contributions are welcome! If you wish to contribute, you can use the following npm commands to help facilitate your development process:

  • dev: Serve index.html for development testing.
  • build: Build the plugin.
  • test: Run tests to verify expected outputs.

Use them as follows:

npm run dev
npm run build
npm run test

Please feel free to open a pull request with your changes or improvements.

Known Issues & limitations

This plugin is designed to work during development. For production, users should manually configure build.rollupOptions.external in Vite.

Support

If you encounter any problems or have any issues, please open a new issue in the GitHub repository.

License

This project is licensed under the MIT License.

About

This repository provides a Vite plugin that allows you to set dependencies as external during development. This is essential when using import maps, ensuring that dependencies are not bundled, but are instead managed and loaded externally.

Resources

License

Stars

Watchers

Forks

Packages

No packages published