modulepreload-express
Version:
Express middleware for generating modulepreload link relations for a Link entity-header based on the requested JavaScript modules import graph.
36 lines (23 loc) • 1.13 kB
Markdown
# modulepreload-express
Express middleware for generating [modulepreload](https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/rel/modulepreload) link relations for a [Link](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Link) entity-header based on the requested JavaScript modules import graph. This will prevent request waterfalls for nested module imports. Supports import maps.
## Install
```sh
npm i modulepreload-express
```
## Usage example
```js
import express from "express";
import createModulePreloadMiddleware from "modulepreload-express/createModulePreloadMiddleware.mjs";
const app = express();
const APP_ROOT = "app";
app.use(createModulePreloadMiddleware(APP_ROOT));
app.use(express.static(APP_ROOT));
app.listen(3000);
```
## API
### `createModulePreloadMiddleware(path[, options])`
- `path` {string} Path to the application root directory, eg "app".
- `options` {Object}
- `extensions` {Array<string>} The file extensions to consider for module scripts. Defaults to: `["mjs", "js"]`.
- `importMap` {string} Import map string.
- `cache` {Object} A custom (map-like) cache.