🚨 Active Supply Chain Attack:node-ipc Package Compromised.Learn More
Socket
Book a DemoSign in
Socket

prebundle

Package Overview
Dependencies
Maintainers
1
Versions
40
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

prebundle

Prebundle Node.js dependencies, output a single js file, a package.json file and the dts files.

latest
Source
npmnpm
Version
1.6.4
Version published
Maintainers
1
Created
Source

Prebundle

Prebundle Node.js dependencies, output a single js file, a package.json file and the dts files.

Based on ncc and rollup-plugin-dts.

npm version license

Motivation

Prebundle is used to:

  • Reduce dependencies of core packages, install faster.
  • Improve stability by locking the sub-dependency version .
  • Fix peer dependency warning of some packages.

Command

Run following command to prebundle all dependencies:

npx prebundle

Run following command to prebundle single dependencies:

npx prebundle <pkgName>

# For example, prebundle commander
npx prebundle commander

Dependency Config

Supported dependency config:

externals

Externals to leave as requires of the build.

// prebundle.config.mjs
export default {
  dependencies: [
    {
      name: 'foo',
      externals: {
        webpack: '../webpack',
      },
    },
  ],
};

You can also configure externals for all packages like this:

// prebundle.config.mjs
export default {
  externals: {
    webpack: '../webpack',
  },
  dependencies: [{ name: 'foo' }, { name: 'foo' }],
};

dtsExternals

Externals for dts.

// prebundle.config.mjs
export default {
  dependencies: [
    {
      name: 'foo',
      dtsExternals: ['webpack'],
    },
  ],
};

minify

Whether to minify the code, default false.

// prebundle.config.mjs
export default {
  dependencies: [
    {
      name: 'foo',
      minify: false,
    },
  ],
};

packageJsonField

Copy extra fields from original package.json to target package.json.

// prebundle.config.mjs
export default {
  dependencies: [
    {
      name: 'foo',
      packageJsonField: ['options'],
    },
  ],
};

Following fields will be copied by default:

  • name
  • author
  • version
  • funding
  • license
  • types
  • typing
  • typings

beforeBundle

Callback before bundle.

// prebundle.config.mjs
export default {
  dependencies: [
    {
      name: 'foo',
      beforeBundle(task) {
        console.log('do something');
      },
    },
  ],
};

emitFiles

Emit extra entry files to map imports.

// prebundle.config.mjs
export default {
  dependencies: [
    {
      name: 'foo',
      emitFiles: [
        {
          path: 'foo.js',
          content: `module.exports = require('./').foo;`,
        },
      ],
    },
  ],
};

ignoreDts

Ignore the original .d.ts declaration file, then generate a fake .d.ts file.

This can be used to reduce file size for the packages that do not require type definitions, such as webpack plugin.

// prebundle.config.mjs
export default {
  dependencies: [
    {
      name: 'foo',
      ignoreDts: true,
    },
  ],
};

copyDts

Copy all type definitions files rather than bundle them via rollup-plugin-dts.

// prebundle.config.mjs
export default {
  dependencies: [{ name: 'foo', copyDts: true }],
};

target

Target ECMAScript version, default es2021.

// prebundle.config.mjs
export default {
  dependencies: [
    {
      name: 'foo',
      target: 'es2015',
    },
  ],
};

dtsOnly

Only bundle the dts files, default false.

// prebundle.config.mjs
export default {
  dependencies: [
    {
      name: 'foo',
      dtsOnly: 'true',
    },
  ],
};

prettier

Whether to prettier the code and strip comments, default false.

// prebundle.config.mjs
export default {
  prettier: true,
};

FAQs

Package last updated on 10 Mar 2026

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts