103 lines
2.8 KiB
Markdown
103 lines
2.8 KiB
Markdown
# rollup-plugin-node-resolve
|
||
|
||
*This plugin used to be called rollup-plugin-npm*
|
||
|
||
Locate modules using the [Node resolution algorithm](https://nodejs.org/api/modules.html#modules_all_together), for using third party modules in `node_modules`
|
||
|
||
## Installation
|
||
|
||
```bash
|
||
npm install --save-dev rollup-plugin-node-resolve
|
||
```
|
||
|
||
## Usage
|
||
|
||
```js
|
||
// rollup.config.js
|
||
import resolve from 'rollup-plugin-node-resolve';
|
||
|
||
export default {
|
||
input: 'main.js',
|
||
output: {
|
||
file: 'bundle.js',
|
||
format: 'iife'
|
||
},
|
||
name: 'MyModule',
|
||
plugins: [
|
||
resolve({
|
||
// use "module" field for ES6 module if possible
|
||
module: true, // Default: true
|
||
|
||
// use "jsnext:main" if possible
|
||
// – see https://github.com/rollup/rollup/wiki/jsnext:main
|
||
jsnext: true, // Default: false
|
||
|
||
// use "main" field or index.js, even if it's not an ES6 module
|
||
// (needs to be converted from CommonJS to ES6
|
||
// – see https://github.com/rollup/rollup-plugin-commonjs
|
||
main: true, // Default: true
|
||
|
||
// some package.json files have a `browser` field which
|
||
// specifies alternative files to load for people bundling
|
||
// for the browser. If that's you, use this option, otherwise
|
||
// pkg.browser will be ignored
|
||
browser: true, // Default: false
|
||
|
||
// not all files you want to resolve are .js files
|
||
extensions: [ '.mjs', '.js', '.jsx', '.json' ], // Default: [ '.mjs', '.js', '.json', '.node' ]
|
||
|
||
// whether to prefer built-in modules (e.g. `fs`, `path`) or
|
||
// local ones with the same names
|
||
preferBuiltins: false, // Default: true
|
||
|
||
// Lock the module search in this path (like a chroot). Module defined
|
||
// outside this path will be marked as external
|
||
jail: '/my/jail/path', // Default: '/'
|
||
|
||
// Set to an array of strings and/or regexps to lock the module search
|
||
// to modules that match at least one entry. Modules not matching any
|
||
// entry will be marked as external
|
||
only: [ 'some_module', /^@some_scope\/.*$/ ], // Default: null
|
||
|
||
// If true, inspect resolved files to check that they are
|
||
// ES2015 modules
|
||
modulesOnly: true, // Default: false
|
||
|
||
// Any additional options that should be passed through
|
||
// to node-resolve
|
||
customResolveOptions: {
|
||
moduleDirectory: 'js_modules'
|
||
}
|
||
})
|
||
]
|
||
};
|
||
```
|
||
|
||
## Using with rollup-plugin-commonjs
|
||
|
||
Since most packages in your node_modules folder are probably legacy CommonJS rather than JavaScript modules, you may need to use [rollup-plugin-commonjs](https://github.com/rollup/rollup-plugin-commonjs):
|
||
|
||
```js
|
||
// rollup.config.js
|
||
import resolve from 'rollup-plugin-node-resolve';
|
||
import commonjs from 'rollup-plugin-commonjs';
|
||
|
||
export default {
|
||
input: 'main.js',
|
||
output: {
|
||
file: 'bundle.js',
|
||
format: 'iife'
|
||
},
|
||
name: 'MyModule',
|
||
plugins: [
|
||
resolve(),
|
||
commonjs()
|
||
]
|
||
};
|
||
```
|
||
|
||
|
||
## License
|
||
|
||
MIT
|