rollup-plugin-rename-node-modules
Version:
A Rollup plugin to rename the `node_modules` created when bundling some external libries while using preserveModules
53 lines (35 loc) ⢠1.91 kB
Markdown
# rollup-plugin-rename-node-modules
š£ A Rollup plugin to rename the `node_modules` created when bundling some external libries while using `preserveModules`
#### Why?
When you enable `preserveModules` but also want to bundle some stuff from dependencies (in my case it was `css` files so that `Next.js` can use my library),
`rollup` will put the files under `node_modules` folder under your output dir. This works locally just fine, but if you try to `npm publish` this output dir,
`npm` will automatically ignore `node_modules` inside the output dir so your package will not work when distributed through `npm`. I don't know if this is
a bug or a desired behavior, but this plugin fixes this by renaming the `node_modules` folder to something else and also check each file and rename any
relative imports pointing to this `node_modules` to the corrected path.
## Requirements
This plugin requires an [LTS](https://github.com/nodejs/Release) Node version (v8.0.0+) and Rollup
## Install
Using npm:
```bash
npm install rollup-plugin-rename-node-modules --save-dev
```
## Usage
Create a `rollup.config.js` [configuration file](https://www.rollupjs.org/guide/en/#configuration-files) and import the plugin:
```js
import renameNodeModules from "rollup-plugin-rename-node-modules";
export default {
input: "src/index.js",
output: {
dir: "output",
format: "cjs",
},
plugins: [renameNodeModules("ext")],
};
```
It takes a string and will rename files and mentions of `node_module` to the provided string. By default it's `external`. Since v1.3.0, you can also pass in a function that takes a `string` and returns a `string`.
It has an optional second parameter `sourceMap` which defaults to `true` and can disable source map generation:
```js
plugins: [renameNodeModules("ext", false)]
```
### Credit
Base idea taken from https://github.com/GiG/rollup-plugin-rename-extensions