🚀 Big News: Socket Acquires Coana to Bring Reachability Analysis to Every Appsec Team.Learn more
Socket
Book a DemoInstallSign in
Socket

@web/dev-server-rollup

Package Overview
Dependencies
Maintainers
6
Versions
81
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@web/dev-server-rollup

Use rollup plugins in @web/dev-server

0.2.0
Source
npm
Version published
Weekly downloads
143K
-15.04%
Maintainers
6
Weekly downloads
 
Created
Source

Dev Server Rollup

Use rollup plugins in web dev server and web test runner.

Web dev server plugins and rollup plugins share a very similar API, making it possible to reuse rollup plugins inside web dev server with an adapter.

Since the dev server doesn't run an actal rollup build, only rollup plugins which do single file transformations can be reused.

Installation

npm i --save-dev @web/dev-server-rollup

Usage

Import the rollup plugin and the fromRollup function in your configuration file. Then, wrap the rollup plugin with the adapter function:

const rollupReplace = require('@rollup/plugin-replace');
const { fromRollup } = require('@web/dev-server-rollup');

const replace = fromRollup(rollupReplace);

module.exports = {
  plugins: [replace({ include: ['src/**/*.js'], __environment__: '"development"' })],
};

Performance

Some rollup plugins do expensive operations. During development, this matters a lot more than during a production build. You are therefore required to always set the include and/or exclude options on rollup plugins.

non-standard file types

The rollup build process assumes that any imported files are are meant to be compiled to JS, web dev server serves many different kinds of files to the browser. If you are transforming a non-standard filetype to JS, for example .json files, you need to instruct the server to handle it as a JS file:

const json = require('@rollup/plugin-json');
const { rollupAdapter } = require('@web/dev-server-rollup');

module.exports = {
  mimeTypes: {
    // serve all json files as js
    '**/*.json': 'js',
    // serve .module.css files as js
    '**/*.module.css': 'js',
  },
  plugins: [rollupAdapter(json())],
};

Compatibility with rollup plugins

Since es-dev-server doesn't do any bundling, only the following lifecycle hooks from rollup are called:

  • options
  • buildStart
  • resolveId
  • load
  • transform

Plugins that use other lifecycle hooks are mostly build optimizations and are not interesting during development.

The following rollup plugins have been tested to work correctly:

  • @rollup/plugin-alias
  • @rollup/plugin-inject
  • @rollup/plugin-commonjs
  • @rollup/plugin-dsv
  • @rollup/plugin-image
  • @rollup/plugin-json
  • @rollup/plugin-node-resolve
  • @rollup/plugin-replace
  • @rollup/plugin-sucrase

The following rollup plugins don't work correctly at the moment:

Keywords

web

FAQs

Package last updated on 11 Aug 2020

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