New Research: Supply Chain Attack on Axios Pulls Malicious Dependency from npm.Details
Socket
Book a DemoSign in
Socket

@hobiri/rollup-preset

Package Overview
Dependencies
Maintainers
1
Versions
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@hobiri/rollup-preset

Tiny rollup preset for typescript libraries

latest
npmnpm
Version
1.0.1
Version published
Maintainers
1
Created
Source

Rollup Preset

A tiny preset for rollup to bundle our libraries.

Features out of the box:

  • Automatic TypeScript
  • Minimal - two lines config
  • No lock-in - DEVs still have total control of the rollup config
  • Publishing libraries by compiling for esm, cjs, jsx, umd and tsc
  • Automatically clean dist folder on build

Usage

  • Install with your favorite package manager:
npm install -D @hobiri/rollup-preset rollup
pnpm add -D @hobiri/rollup-preset rollup
yarn add -D @hobiri/rollup-preset rollup
  • Import withConfig in your rollup.config.js. The first and only argument is (optionally) your rollup config:
// rollup.config.js
import withConfig from "@hobiri/rollup-preset";

export default withConfig();
  • Configure your package.json
{
  "name": "my-lib",

  "// This is optional but this removes the need to manually configure the source input for rollup": "",
  "source": "src/my-lib.ts",

  "// All the following properties will be hinted during build": "",
  "// You will just have to copy-paste them": "",

  "main": "dist/cjs/my-lib.js",
  "module": "dist/esm/my-lib.js",
  "types": "dist/types/my-lib.d.ts",
  "files": ["dist"],
  "exports": {
    ".": {
      "import": "./dist/esm/my-lib.js",
      "browser": "./dist/esm/my-lib.js",
      "require": "./dist/cjs/my-lib.js",
      "node": "./dist/cjs/my-lib.js"
    }
  }
}

API

withConfig(options?: Options | Options[]): RollupOptions | RollupOptions[]

The default export. A wrapper function that accepts all of the rollup options and a few extra to configure what to generate.

Options

The options are the same as Rollup with a few extras that are specific to the wrapper.

export interface Options extends RollupOptions {
    /**
     * Defines which target you want.
     * Accepted values are: `cjs`, `esm`, and `umd`.
     * @default ['esm']
     */
    targets?: ModuleFormat[];
    /**
     * This can be used to override the default babel options.
     * The targets can be set in the "browserslist" field in your `package.json`.
     * Beware the options are only merged at the top level.
     * If you add babel presets you'll need to add the default one back (as you see fit).
     * @default {
     *   extensions,
     *   babelHelpers: "bundled",
     *   presets: ["@babel/preset-typescript", ['@babel/preset-env', { bugfixes: true, targets: "last 2 years" }]],
     * }
     */
    babelOptions?: RollupBabelInputPluginOptions;
    /**
     * This can be used to override the name defined in your `package.json`.
     */
    mappingName?: string;
}

Keywords

rollup

FAQs

Package last updated on 27 Oct 2022

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