rollup-plugin-devalued-import

1.0.4 • Public • Published

npm size

rollup-plugin-devalued-import

The plugin compiles the imported code separately and puts it in the bundle. A devalue package is used for safe code compilation.

Install

Using npm:

npm install rollup-plugin-devalued-import --save-dev

or

yarn add -D rollup-plugin-devalued-import

Usage

import devalued from 'rollup-plugin-devalued-import';

export default {
  input: 'src/index.js',
  output: {
    dir: 'output',
    format: 'cjs',
  },
  plugins: [
    devalued({
      prefix: 'devalued!', // - by default
      strict: false // - by default.
      // If strict: true, there will be an import error
      // if the object doesn't work with the 'devalue' package
      rollup: {
        // any settings and plugins for the 'rollup':
        // plugins: [ e.g.: json(), svelte(), replace(), etc... ]
      }
    }),
  ],
};

Example 1:

// src/foo.js
const bar = [1, 2, 3, 4, 5];
const baz = bar.filter((v) => v % 2); // [1, 3, 5];
export { baz };

!!!Configuration without a plugin:

// src/main.js
import { baz } from './src/foo.js';
console.log(baz);
// rollup.config.js
// ...

export default {
  input: 'src/main.js',
  output: {
    format: 'iife',
    file: 'public/bundle.js',
  },
  // ...
};

Result:

// public/bundle.js
(function () {
  'use strict';
  const bar = [1, 2, 3, 4, 5];
  const baz = bar.filter((v) => v % 2); // [1, 3, 5];
  console.log(baz);
})();

!!!Configuration with a plugin:

// src/main.js
import { baz } from 'devalued!./src/foo.js';
console.log(baz);
// rollup.config.js
import devalued from 'rollup-plugin-devalued-import';
// ...

export default {
  input: 'src/main.js',
  output: {
    format: 'iife',
    file: 'public/bundle.js',
  },
  plugins: [devalued()],
  // ...
};

Result:

// public/bundle.js
(function () {
  'use strict';
  const baz = [1, 3, 5];
  console.log(baz);
})();

Example 2:

// src/foo.js
import BIG_JSON_FILE from 'somepath/big_file.json';
// { q1: 1, q2: 2 , q3: 3, q4: 4, q5: 5, ... }

const many_keys = Object.keys(BIG_JSON_FILE); // ['q1', 'q2', 'q3', ...]
export default many_keys;

!!!Configuration without a plugin:

// src/main.js
import many_keys from './src/foo.js';
console.log(many_keys);
// rollup.config.js
import json from '@rollup/plugin-json';
// ...

export default {
  input: 'src/main.js',
  output: {
    format: 'iife',
    file: 'public/bundle.js',
  },
  plugins: [json()],
  // ...
};

Result:

// public/bundle.js
(function () {
  'use strict';
  const BIG_JSON_FILE = { q1: 1, q2: 2, q3: 3 /* ... */ };
  const many_keys = Object.keys(BIG_JSON_FILE);
  console.log(many_keys);
})();

!!!Configuration with a plugin:

// src/main.js
import many_keys from 'devalued!./src/foo.js';
console.log(many_keys);
// rollup.config.js
import json from '@rollup/plugin-json';
import devalued from 'rollup-plugin-devalued-import';
// ...

export default {
  input: 'src/main.js',
  output: {
    format: 'iife',
    file: 'public/bundle.js',
  },
  plugins: [
    devalued({
      rollup: {
        plugins: [json() /* and other plugins */],
      },
    }),
  ],
  // ...
};

Result:

// public/bundle.js
(function () {
  'use strict';
  const many_keys = ['q1', 'q2', 'q3' /* ... */];
  console.log(many_keys);
})();

Meta

LICENSE (MIT)

Package Sidebar

Install

npm i rollup-plugin-devalued-import

Weekly Downloads

2

Version

1.0.4

License

MIT

Unpacked Size

8.19 kB

Total Files

4

Last publish

Collaborators

  • nk12