Nautical Pirate Moustache

    @rollup/plugin-node-resolve
    TypeScript icon, indicating that this package has built-in type declarations

    7.1.0 • Public • Published

    npm size libera manifesto

    @rollup/plugin-node-resolve

    🍣 A Rollup plugin which locates modules using the Node resolution algorithm, for using third party modules in node_modules

    Requirements

    This plugin requires an LTS Node version (v8.0.0+) and Rollup v1.20.0+.

    Install

    Using npm:

    npm install @rollup/plugin-node-resolve --save-dev

    Usage

    Create a rollup.config.js configuration file and import the plugin:

    import resolve from '@rollup/plugin-node-resolve';
    
    export default {
      input: 'src/index.js',
      output: {
        dir: 'output',
        format: 'cjs'
      },
      plugins: [resolve()]
    };

    Then call rollup either via the CLI or the API.

    Options

    browser

    Type: Boolean
    Default: false

    If true, instructs the plugin to use the "browser" property in package.json files to specify alternative files to load for bundling. This is useful when bundling for a browser environment. Alternatively, a value of 'browser' can be added to the mainFields option. If false, any "browser" properties in package files will be ignored. This option takes precedence over mainFields.

    customResolveOptions

    Type: Boolean
    Default: null

    An Object that specifies additional options that should be passed through to node-resolve.

    customResolveOptions: {
      moduleDirectory: 'js_modules'
    }
    

    dedupe

    Type: Array[...String]
    Default: []

    An Array of modules names, which instructs the plugin to force resolving for the specified modules to the root node_modules. Helps to prevent bundling the same package multiple times if package is imported from dependencies.

    dedupe: ['my-package', '@namespace/my-package'];

    This will deduplicate bare imports such as:

    import 'my-package';
    import '@namespace/my-package';

    And it will deduplicate deep imports such as:

    import 'my-package/foo.js';
    import '@namespace/my-package/bar.js';

    extensions

    Type: Array[...String]
    Default: ['.mjs', '.js', '.json', '.node']

    Specifies the extensions of files that the plugin will operate on.

    jail

    Type: String
    Default: '/'

    Locks the module search within specified path (e.g. chroot). Modules defined outside this path will be marked as external.

    mainFields

    Type: Array[...String]
    Default: ['module', 'main']
    Valid values: ['browser', 'jsnext', 'module', 'main']

    Specifies the properties to scan within a package.json, used to determine the bundle entry point. The order of property names is significant, as the first-found property is used as the resolved entry point. If the array contains 'browser', key/values specified in the package.json browser property will be used.

    only

    DEPRECATED: use "resolveOnly" instead

    preferBuiltins

    Type: Boolean
    Default: true

    If true, the plugin will prefer built-in modules (e.g. fs, path). If false, the plugin will look for locally installed modules of the same name.

    modulesOnly

    Type: Boolean
    Default: false

    If true, inspect resolved files to assert that they are ES2015 modules.

    resolveOnly

    Type: Array[...String|RegExp]
    Default: null

    An Array which instructs the plugin to limit module resolution to those whose names match patterns in the array. Note: Modules not matching any patterns will be marked as external.

    Example: resolveOnly: ['batman', /^@batcave\/.*$/]

    rootDir

    Type: String
    Default: process.cwd()

    Specifies the root directory from which to resolve modules. Typically used when resolving entry-point imports, and when resolving deduplicated modules. Useful when executing rollup in a package of a mono-repository.

    // Set the root directory to be the parent folder
    rootDir: path.join(process.cwd(), '..')
    

    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:

    // 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()]
    };

    Resolving Built-Ins (like fs)

    This plugin won't resolve any builtins (e.g. fs). If you need to resolve builtins you can install local modules and set preferBuiltins to false, or install a plugin like rollup-plugin-node-polyfills which provides stubbed versions of these methods.

    If you want to silence warnings about builtins, you can add the list of builtins to the externals option; like so:

    import resolve from '@rollup/plugin-node-resolve';
    import builtins from 'builtin-modules'
    export default ({
      input: ...,
      plugins: [resolve()],
      external: builtins,
      output: ...
    })

    Meta

    CONTRIBUTING

    LICENSE (MIT)

    Install

    npm i @rollup/plugin-node-resolve@7.1.0

    Version

    7.1.0

    License

    MIT

    Unpacked Size

    54.3 kB

    Total Files

    7

    Last publish

    Collaborators

    • shellscape
    • rich_harris
    • guybedford
    • lukastaegert