Repository files navigation

Web Front-end TestsGitHub linesGitHub release (latest SemVer)GitHub closed issues countGitHub pull request countGitHub language countLines of codeGitHub code size in bytes

Comroconbu

Builds configuration that can be used by Rollup. It will be based from common patterns of configuration in my personal projects.

Installation

Run the following on your command line:

npm install --save-dev git+https://github.com/KennethTrecy/comroconbu#v0.3.0

Usage Example

Basic Configuration (without external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
const commonInfoBuilder = new CommonInfoBuilder(
"src", // Input directory
"dist", // Output directory
"iife" // Output format
);
export default [
...commonInfoBuilder.configureNamedSource(
"index", // Name of the source (Acts as the global identifier)
"index.js", // Where to find the file relative to the input directory
[
// Put the plugins here
pluginA()
]
).toConfigurationArray()
];

The above example is the same as writing the configuration below:

import pluginA from "example-package-a";
export default [
{
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}
];

Advance Configuration (with plugins and external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
import pluginB from "example-package-b";
const commonInfoBuilder = new CommonInfoBuilder("src", "dist", "iife");
export default [
...commonInfoBuilder.configureNamedSource(
"index",
"index.js",
[
pluginA()
],
[
// Put the external packages as fourth argument.
// Linked external packages are external packages linked by CDN in the document or by
// other means.
commonInfoBuilder.linkExternalPackage(
"library-a", // Package name used to import in the named source file
"$" // Global identifier for the package
),
// Imported external packages are external packages imported to a file yet it is not
// included in the source.
commonInfoBuilder.importExternalPackage(
"library-b", // Package name
"_", // Global identifier for the package
"dependencies/library-b.js", // Path to the file relative to the input directory
[
// Plugins for bundling the external package
pluginA(),
pluginB()
],
[
// External packages for this external package
]
)
// Rebundled external package is a compilation of other external packages.
commonInfoBuilder.rebundleExternalPackage(
"BundleC", // Global identifier to access all external packages
{
// Name (key) and global identifier (value) of external packages
"framework-d": "frameworkD",
"library-e": "libraryE"
},
"dependencies/bundle-c.js", // Path to the file that imports all external packages
[
// Put plugins here
],
[
// You may put external packages that will not be included in the bundle.
// This argument is optional.
]
)
]
).toConfigurationArray()
];

The above configuration is the same as below:

import pluginA from "example-package-a";
import pluginB from "example-package-b";
export default [
{
"external": [ "library-a", "library-b", "framework-d", "library-e" ],
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"globals": {
"library-a": "$",
"library-b": "_",
"framework-d": "BundleC.frameworkD",
"library-e": "BundleC.libraryE",
},
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}, {
"input": "src/dependencies/library-b.js",
"output": {
"file": "dist/dependencies/library-b.js",
"format": "iife",
"interop": "esModule",
"name": "_"
},
"plugins": [
pluginA(),
pluginB()
]
}, {
"input": "src/dependencies/bundle-c.js",
"output": {
"file": "dist/dependencies/bundle-c.js",
"format": "iife",
"interop": "esModule",
"name": "BundleC"
}
}
];

Other methods and classes

Above examples showed how to use CommonInfoBuilder and its methods toConfigurationArray, linkExternalPackage, importExternalPackage, and rebundleExternalPackage. There are also other methods namely:

  • configureUnnamedSource. Suitable when specifying unnamed source.
  • configureSourceDirectory. Suitable when specifying a collection of unnamed source files which may have common plugin(s) and/or external package(s).
  • getCommonInfo. Returns common information used to create configurations of others.

Some of those methods may create an instance of one of the following classes:

Origin

Some parts of the repository was based from docker_js-mocha branch of Web Template.

The template is specialized for front-end development.

Development

These are the following instructions to start contributing in the project.

Initialization

This repository should be initialized to adhere in Conventional Commits specification for organize commits and automated generation of change log.

Prerequisites

Instructions

By running the command below, all your commits will be linted to follow the Conventional Commits specification.

$ npm install

Or if you have installed pnpm, run the following command:

$ pnpm install

To generate the change log automatically, run the command below:

$ npx changelogen --from=[tag name or branch name or commit itself] --to=master

Assumptions

There are following assumptions considered while building this library:

  • The path of input files and output files have almost the same path. The only difference is their root directory.
  • Some modules may be linked to other separately-bundled modules.
  • Some external packages will be rebundled into one file.
  • The value of output.interop of every configuration is esModule.

Notes

Want to contribute?

Read the contributing guide for different ways to contribute in the project.

Author

Coded by Kenneth Trecy Tobias. Licensed under MIT.

About

Common Rollup configuration builder

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Add copy buttons to all
 blocks
(function() {
function addCopyButtons() {
document.querySelectorAll('pre code').forEach(function(codeBlock) {
if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;
codeBlock.parentElement.setAttribute('data-copy-added', 'true');
var btn = document.createElement('button');
btn.textContent = 'Copy';
btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';
btn.onmouseover = function() { this.style.opacity = '1'; };
btn.onmouseout = function() { this.style.opacity = '0.7'; };
btn.onclick = function() {
navigator.clipboard.writeText(codeBlock.textContent).then(function() {
btn.textContent = 'Copied!';
setTimeout(function() { btn.textContent = 'Copy'; }, 1500);
});
};
codeBlock.parentElement.style.position = 'relative';
codeBlock.parentElement.appendChild(btn);
});
}
addCopyButtons();
// Re-run on dynamic content
var observer = new MutationObserver(addCopyButtons);
observer.observe(document.body, { childList: true, subtree: true });
})();
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

Repository files navigation

Web Front-end TestsGitHub linesGitHub release (latest SemVer)GitHub closed issues countGitHub pull request countGitHub language countLines of codeGitHub code size in bytes

Comroconbu

Builds configuration that can be used by Rollup. It will be based from common patterns of configuration in my personal projects.

Installation

Run the following on your command line:

npm install --save-dev git+https://github.com/KennethTrecy/comroconbu#v0.3.0

Usage Example

Basic Configuration (without external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
const commonInfoBuilder = new CommonInfoBuilder(
"src", // Input directory
"dist", // Output directory
"iife" // Output format
);
export default [
...commonInfoBuilder.configureNamedSource(
"index", // Name of the source (Acts as the global identifier)
"index.js", // Where to find the file relative to the input directory
[
// Put the plugins here
pluginA()
]
).toConfigurationArray()
];

The above example is the same as writing the configuration below:

import pluginA from "example-package-a";
export default [
{
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}
];

Advance Configuration (with plugins and external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
import pluginB from "example-package-b";
const commonInfoBuilder = new CommonInfoBuilder("src", "dist", "iife");
export default [
...commonInfoBuilder.configureNamedSource(
"index",
"index.js",
[
pluginA()
],
[
// Put the external packages as fourth argument.
// Linked external packages are external packages linked by CDN in the document or by
// other means.
commonInfoBuilder.linkExternalPackage(
"library-a", // Package name used to import in the named source file
"$" // Global identifier for the package
),
// Imported external packages are external packages imported to a file yet it is not
// included in the source.
commonInfoBuilder.importExternalPackage(
"library-b", // Package name
"_", // Global identifier for the package
"dependencies/library-b.js", // Path to the file relative to the input directory
[
// Plugins for bundling the external package
pluginA(),
pluginB()
],
[
// External packages for this external package
]
)
// Rebundled external package is a compilation of other external packages.
commonInfoBuilder.rebundleExternalPackage(
"BundleC", // Global identifier to access all external packages
{
// Name (key) and global identifier (value) of external packages
"framework-d": "frameworkD",
"library-e": "libraryE"
},
"dependencies/bundle-c.js", // Path to the file that imports all external packages
[
// Put plugins here
],
[
// You may put external packages that will not be included in the bundle.
// This argument is optional.
]
)
]
).toConfigurationArray()
];

The above configuration is the same as below:

import pluginA from "example-package-a";
import pluginB from "example-package-b";
export default [
{
"external": [ "library-a", "library-b", "framework-d", "library-e" ],
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"globals": {
"library-a": "$",
"library-b": "_",
"framework-d": "BundleC.frameworkD",
"library-e": "BundleC.libraryE",
},
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}, {
"input": "src/dependencies/library-b.js",
"output": {
"file": "dist/dependencies/library-b.js",
"format": "iife",
"interop": "esModule",
"name": "_"
},
"plugins": [
pluginA(),
pluginB()
]
}, {
"input": "src/dependencies/bundle-c.js",
"output": {
"file": "dist/dependencies/bundle-c.js",
"format": "iife",
"interop": "esModule",
"name": "BundleC"
}
}
];

Other methods and classes

Above examples showed how to use CommonInfoBuilder and its methods toConfigurationArray, linkExternalPackage, importExternalPackage, and rebundleExternalPackage. There are also other methods namely:

  • configureUnnamedSource. Suitable when specifying unnamed source.
  • configureSourceDirectory. Suitable when specifying a collection of unnamed source files which may have common plugin(s) and/or external package(s).
  • getCommonInfo. Returns common information used to create configurations of others.

Some of those methods may create an instance of one of the following classes:

Origin

Some parts of the repository was based from docker_js-mocha branch of Web Template.

The template is specialized for front-end development.

Development

These are the following instructions to start contributing in the project.

Initialization

This repository should be initialized to adhere in Conventional Commits specification for organize commits and automated generation of change log.

Prerequisites

Instructions

By running the command below, all your commits will be linted to follow the Conventional Commits specification.

$ npm install

Or if you have installed pnpm, run the following command:

$ pnpm install

To generate the change log automatically, run the command below:

$ npx changelogen --from=[tag name or branch name or commit itself] --to=master

Assumptions

There are following assumptions considered while building this library:

  • The path of input files and output files have almost the same path. The only difference is their root directory.
  • Some modules may be linked to other separately-bundled modules.
  • Some external packages will be rebundled into one file.
  • The value of output.interop of every configuration is esModule.

Notes

Want to contribute?

Read the contributing guide for different ways to contribute in the project.

Author

Coded by Kenneth Trecy Tobias. Licensed under MIT.

About

Common Rollup configuration builder

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Force GitHub README to respect dark mode (function() { var style = document.createElement('style'); style.textContent = ' .markdown-body { color-scheme: dark light; } .markdown-body pre { background: #161b22 !important; } .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; } .markdown-body table th, .markdown-body table td { border-color: #30363d !important; } .markdown-body img { background: #0d1117; } .markdown-body blockquote { border-left-color: #8b949e; } .markdown-body hr { border-color: #30363d; } '; document.head.appendChild(style); })(); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Web Front-end TestsGitHub linesGitHub release (latest SemVer)GitHub closed issues countGitHub pull request countGitHub language countLines of codeGitHub code size in bytes

Comroconbu

Builds configuration that can be used by Rollup. It will be based from common patterns of configuration in my personal projects.

Installation

Run the following on your command line:

npm install --save-dev git+https://github.com/KennethTrecy/comroconbu#v0.3.0

Usage Example

Basic Configuration (without external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
const commonInfoBuilder = new CommonInfoBuilder(
"src", // Input directory
"dist", // Output directory
"iife" // Output format
);
export default [
...commonInfoBuilder.configureNamedSource(
"index", // Name of the source (Acts as the global identifier)
"index.js", // Where to find the file relative to the input directory
[
// Put the plugins here
pluginA()
]
).toConfigurationArray()
];

The above example is the same as writing the configuration below:

import pluginA from "example-package-a";
export default [
{
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}
];

Advance Configuration (with plugins and external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
import pluginB from "example-package-b";
const commonInfoBuilder = new CommonInfoBuilder("src", "dist", "iife");
export default [
...commonInfoBuilder.configureNamedSource(
"index",
"index.js",
[
pluginA()
],
[
// Put the external packages as fourth argument.
// Linked external packages are external packages linked by CDN in the document or by
// other means.
commonInfoBuilder.linkExternalPackage(
"library-a", // Package name used to import in the named source file
"$" // Global identifier for the package
),
// Imported external packages are external packages imported to a file yet it is not
// included in the source.
commonInfoBuilder.importExternalPackage(
"library-b", // Package name
"_", // Global identifier for the package
"dependencies/library-b.js", // Path to the file relative to the input directory
[
// Plugins for bundling the external package
pluginA(),
pluginB()
],
[
// External packages for this external package
]
)
// Rebundled external package is a compilation of other external packages.
commonInfoBuilder.rebundleExternalPackage(
"BundleC", // Global identifier to access all external packages
{
// Name (key) and global identifier (value) of external packages
"framework-d": "frameworkD",
"library-e": "libraryE"
},
"dependencies/bundle-c.js", // Path to the file that imports all external packages
[
// Put plugins here
],
[
// You may put external packages that will not be included in the bundle.
// This argument is optional.
]
)
]
).toConfigurationArray()
];

The above configuration is the same as below:

import pluginA from "example-package-a";
import pluginB from "example-package-b";
export default [
{
"external": [ "library-a", "library-b", "framework-d", "library-e" ],
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"globals": {
"library-a": "$",
"library-b": "_",
"framework-d": "BundleC.frameworkD",
"library-e": "BundleC.libraryE",
},
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}, {
"input": "src/dependencies/library-b.js",
"output": {
"file": "dist/dependencies/library-b.js",
"format": "iife",
"interop": "esModule",
"name": "_"
},
"plugins": [
pluginA(),
pluginB()
]
}, {
"input": "src/dependencies/bundle-c.js",
"output": {
"file": "dist/dependencies/bundle-c.js",
"format": "iife",
"interop": "esModule",
"name": "BundleC"
}
}
];

Other methods and classes

Above examples showed how to use CommonInfoBuilder and its methods toConfigurationArray, linkExternalPackage, importExternalPackage, and rebundleExternalPackage. There are also other methods namely:

  • configureUnnamedSource. Suitable when specifying unnamed source.
  • configureSourceDirectory. Suitable when specifying a collection of unnamed source files which may have common plugin(s) and/or external package(s).
  • getCommonInfo. Returns common information used to create configurations of others.

Some of those methods may create an instance of one of the following classes:

Origin

Some parts of the repository was based from docker_js-mocha branch of Web Template.

The template is specialized for front-end development.

Development

These are the following instructions to start contributing in the project.

Initialization

This repository should be initialized to adhere in Conventional Commits specification for organize commits and automated generation of change log.

Prerequisites

Instructions

By running the command below, all your commits will be linted to follow the Conventional Commits specification.

$ npm install

Or if you have installed pnpm, run the following command:

$ pnpm install

To generate the change log automatically, run the command below:

$ npx changelogen --from=[tag name or branch name or commit itself] --to=master

Assumptions

There are following assumptions considered while building this library:

  • The path of input files and output files have almost the same path. The only difference is their root directory.
  • Some modules may be linked to other separately-bundled modules.
  • Some external packages will be rebundled into one file.
  • The value of output.interop of every configuration is esModule.

Notes

Want to contribute?

Read the contributing guide for different ways to contribute in the project.

Author

Coded by Kenneth Trecy Tobias. Licensed under MIT.

About

Common Rollup configuration builder

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Highlight search terms from Google/DuckDuckGo/Bing referrer (function() { var ref = document.referrer; var terms = []; if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) { var url = new URL(ref); var q = url.searchParams.get('q') || url.searchParams.get('p'); if (q) { terms = q.split(/\s+/).filter(function(t) { return t.length > 2; }); } } if (terms.length === 0) return; var style = document.createElement('style'); style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }'; document.head.appendChild(style); function highlight(node) { if (node.nodeType === 3) { // text node var text = node.textContent; var found = false; terms.forEach(function(term) { var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\]\\]/g, '\\') + ')', 'gi'); if (regex.test(text)) { found = true; var frag = document.createDocumentFragment(); var parts = text.split(regex); parts.forEach(function(part, i) { if (i % 2 === 0) { frag.appendChild(document.createTextNode(part)); } else { var span = document.createElement('span'); span.className = 'userscript-highlight'; span.textContent = part; frag.appendChild(span); } }); node.parentNode.replaceChild(frag, node); } }); } else if (node.nodeType === 1 && node.childNodes) { // element var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT']; if (!skipTags.includes(node.tagName)) { Array.from(node.childNodes).forEach(highlight); } } } highlight(document.body); // Re-highlight on dynamic content var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1 || node.nodeType === 3) highlight(node); }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Web Front-end TestsGitHub linesGitHub release (latest SemVer)GitHub closed issues countGitHub pull request countGitHub language countLines of codeGitHub code size in bytes

Comroconbu

Builds configuration that can be used by Rollup. It will be based from common patterns of configuration in my personal projects.

Installation

Run the following on your command line:

npm install --save-dev git+https://github.com/KennethTrecy/comroconbu#v0.3.0

Usage Example

Basic Configuration (without external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
const commonInfoBuilder = new CommonInfoBuilder(
"src", // Input directory
"dist", // Output directory
"iife" // Output format
);
export default [
...commonInfoBuilder.configureNamedSource(
"index", // Name of the source (Acts as the global identifier)
"index.js", // Where to find the file relative to the input directory
[
// Put the plugins here
pluginA()
]
).toConfigurationArray()
];

The above example is the same as writing the configuration below:

import pluginA from "example-package-a";
export default [
{
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}
];

Advance Configuration (with plugins and external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
import pluginB from "example-package-b";
const commonInfoBuilder = new CommonInfoBuilder("src", "dist", "iife");
export default [
...commonInfoBuilder.configureNamedSource(
"index",
"index.js",
[
pluginA()
],
[
// Put the external packages as fourth argument.
// Linked external packages are external packages linked by CDN in the document or by
// other means.
commonInfoBuilder.linkExternalPackage(
"library-a", // Package name used to import in the named source file
"$" // Global identifier for the package
),
// Imported external packages are external packages imported to a file yet it is not
// included in the source.
commonInfoBuilder.importExternalPackage(
"library-b", // Package name
"_", // Global identifier for the package
"dependencies/library-b.js", // Path to the file relative to the input directory
[
// Plugins for bundling the external package
pluginA(),
pluginB()
],
[
// External packages for this external package
]
)
// Rebundled external package is a compilation of other external packages.
commonInfoBuilder.rebundleExternalPackage(
"BundleC", // Global identifier to access all external packages
{
// Name (key) and global identifier (value) of external packages
"framework-d": "frameworkD",
"library-e": "libraryE"
},
"dependencies/bundle-c.js", // Path to the file that imports all external packages
[
// Put plugins here
],
[
// You may put external packages that will not be included in the bundle.
// This argument is optional.
]
)
]
).toConfigurationArray()
];

The above configuration is the same as below:

import pluginA from "example-package-a";
import pluginB from "example-package-b";
export default [
{
"external": [ "library-a", "library-b", "framework-d", "library-e" ],
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"globals": {
"library-a": "$",
"library-b": "_",
"framework-d": "BundleC.frameworkD",
"library-e": "BundleC.libraryE",
},
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}, {
"input": "src/dependencies/library-b.js",
"output": {
"file": "dist/dependencies/library-b.js",
"format": "iife",
"interop": "esModule",
"name": "_"
},
"plugins": [
pluginA(),
pluginB()
]
}, {
"input": "src/dependencies/bundle-c.js",
"output": {
"file": "dist/dependencies/bundle-c.js",
"format": "iife",
"interop": "esModule",
"name": "BundleC"
}
}
];

Other methods and classes

Above examples showed how to use CommonInfoBuilder and its methods toConfigurationArray, linkExternalPackage, importExternalPackage, and rebundleExternalPackage. There are also other methods namely:

  • configureUnnamedSource. Suitable when specifying unnamed source.
  • configureSourceDirectory. Suitable when specifying a collection of unnamed source files which may have common plugin(s) and/or external package(s).
  • getCommonInfo. Returns common information used to create configurations of others.

Some of those methods may create an instance of one of the following classes:

Origin

Some parts of the repository was based from docker_js-mocha branch of Web Template.

The template is specialized for front-end development.

Development

These are the following instructions to start contributing in the project.

Initialization

This repository should be initialized to adhere in Conventional Commits specification for organize commits and automated generation of change log.

Prerequisites

Instructions

By running the command below, all your commits will be linted to follow the Conventional Commits specification.

$ npm install

Or if you have installed pnpm, run the following command:

$ pnpm install

To generate the change log automatically, run the command below:

$ npx changelogen --from=[tag name or branch name or commit itself] --to=master

Assumptions

There are following assumptions considered while building this library:

  • The path of input files and output files have almost the same path. The only difference is their root directory.
  • Some modules may be linked to other separately-bundled modules.
  • Some external packages will be rebundled into one file.
  • The value of output.interop of every configuration is esModule.

Notes

Want to contribute?

Read the contributing guide for different ways to contribute in the project.

Author

Coded by Kenneth Trecy Tobias. Licensed under MIT.

About

Common Rollup configuration builder

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Strip utm_, fbclid, gclid, etc. from all links on page (function() { var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content', 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid', 'ref', 'ref_src', 'source', 'medium', 'campaign']; function cleanUrl(url) { try { var u = new URL(url, window.location.origin); var changed = false; trackingParams.forEach(function(p) { if (u.searchParams.has(p)) { u.searchParams.delete(p); changed = true; } }); return changed ? u.toString() : url; } catch (e) { return url; } } function cleanLinks() { document.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } cleanLinks(); var observer = new MutationObserver(function(mutations) { mutations.forEach(function(m) { m.addedNodes.forEach(function(node) { if (node.nodeType === 1) { if (node.tagName === 'A') cleanLinks(); node.querySelectorAll('a[href]').forEach(function(a) { var clean = cleanUrl(a.href); if (clean !== a.href) a.href = clean; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

Repository files navigation

Web Front-end TestsGitHub linesGitHub release (latest SemVer)GitHub closed issues countGitHub pull request countGitHub language countLines of codeGitHub code size in bytes

Comroconbu

Builds configuration that can be used by Rollup. It will be based from common patterns of configuration in my personal projects.

Installation

Run the following on your command line:

npm install --save-dev git+https://github.com/KennethTrecy/comroconbu#v0.3.0

Usage Example

Basic Configuration (without external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
const commonInfoBuilder = new CommonInfoBuilder(
"src", // Input directory
"dist", // Output directory
"iife" // Output format
);
export default [
...commonInfoBuilder.configureNamedSource(
"index", // Name of the source (Acts as the global identifier)
"index.js", // Where to find the file relative to the input directory
[
// Put the plugins here
pluginA()
]
).toConfigurationArray()
];

The above example is the same as writing the configuration below:

import pluginA from "example-package-a";
export default [
{
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}
];

Advance Configuration (with plugins and external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
import pluginB from "example-package-b";
const commonInfoBuilder = new CommonInfoBuilder("src", "dist", "iife");
export default [
...commonInfoBuilder.configureNamedSource(
"index",
"index.js",
[
pluginA()
],
[
// Put the external packages as fourth argument.
// Linked external packages are external packages linked by CDN in the document or by
// other means.
commonInfoBuilder.linkExternalPackage(
"library-a", // Package name used to import in the named source file
"$" // Global identifier for the package
),
// Imported external packages are external packages imported to a file yet it is not
// included in the source.
commonInfoBuilder.importExternalPackage(
"library-b", // Package name
"_", // Global identifier for the package
"dependencies/library-b.js", // Path to the file relative to the input directory
[
// Plugins for bundling the external package
pluginA(),
pluginB()
],
[
// External packages for this external package
]
)
// Rebundled external package is a compilation of other external packages.
commonInfoBuilder.rebundleExternalPackage(
"BundleC", // Global identifier to access all external packages
{
// Name (key) and global identifier (value) of external packages
"framework-d": "frameworkD",
"library-e": "libraryE"
},
"dependencies/bundle-c.js", // Path to the file that imports all external packages
[
// Put plugins here
],
[
// You may put external packages that will not be included in the bundle.
// This argument is optional.
]
)
]
).toConfigurationArray()
];

The above configuration is the same as below:

import pluginA from "example-package-a";
import pluginB from "example-package-b";
export default [
{
"external": [ "library-a", "library-b", "framework-d", "library-e" ],
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"globals": {
"library-a": "$",
"library-b": "_",
"framework-d": "BundleC.frameworkD",
"library-e": "BundleC.libraryE",
},
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}, {
"input": "src/dependencies/library-b.js",
"output": {
"file": "dist/dependencies/library-b.js",
"format": "iife",
"interop": "esModule",
"name": "_"
},
"plugins": [
pluginA(),
pluginB()
]
}, {
"input": "src/dependencies/bundle-c.js",
"output": {
"file": "dist/dependencies/bundle-c.js",
"format": "iife",
"interop": "esModule",
"name": "BundleC"
}
}
];

Other methods and classes

Above examples showed how to use CommonInfoBuilder and its methods toConfigurationArray, linkExternalPackage, importExternalPackage, and rebundleExternalPackage. There are also other methods namely:

  • configureUnnamedSource. Suitable when specifying unnamed source.
  • configureSourceDirectory. Suitable when specifying a collection of unnamed source files which may have common plugin(s) and/or external package(s).
  • getCommonInfo. Returns common information used to create configurations of others.

Some of those methods may create an instance of one of the following classes:

Origin

Some parts of the repository was based from docker_js-mocha branch of Web Template.

The template is specialized for front-end development.

Development

These are the following instructions to start contributing in the project.

Initialization

This repository should be initialized to adhere in Conventional Commits specification for organize commits and automated generation of change log.

Prerequisites

Instructions

By running the command below, all your commits will be linted to follow the Conventional Commits specification.

$ npm install

Or if you have installed pnpm, run the following command:

$ pnpm install

To generate the change log automatically, run the command below:

$ npx changelogen --from=[tag name or branch name or commit itself] --to=master

Assumptions

There are following assumptions considered while building this library:

  • The path of input files and output files have almost the same path. The only difference is their root directory.
  • Some modules may be linked to other separately-bundled modules.
  • Some external packages will be rebundled into one file.
  • The value of output.interop of every configuration is esModule.

Notes

Want to contribute?

Read the contributing guide for different ways to contribute in the project.

Author

Coded by Kenneth Trecy Tobias. Licensed under MIT.

About

Common Rollup configuration builder

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Auto-enable theater mode on YouTube (function() { function tryTheater() { var btn = document.querySelector('button[aria-label="Theater mode"], ytd-player #player button[title="Theater mode"]'); if (btn && !btn.classList.contains('activated')) { btn.click(); } } // Try immediately tryTheater(); // Try after navigation (SPA) var lastUrl = location.href; setInterval(function() { if (location.href !== lastUrl) { lastUrl = location.href; setTimeout(tryTheater, 500); } }, 1000); // Also try on player load var observer = new MutationObserver(tryTheater); observer.observe(document.body, { childList: true, subtree: true }); })(); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Web Front-end TestsGitHub linesGitHub release (latest SemVer)GitHub closed issues countGitHub pull request countGitHub language countLines of codeGitHub code size in bytes

Comroconbu

Builds configuration that can be used by Rollup. It will be based from common patterns of configuration in my personal projects.

Installation

Run the following on your command line:

npm install --save-dev git+https://github.com/KennethTrecy/comroconbu#v0.3.0

Usage Example

Basic Configuration (without external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
const commonInfoBuilder = new CommonInfoBuilder(
"src", // Input directory
"dist", // Output directory
"iife" // Output format
);
export default [
...commonInfoBuilder.configureNamedSource(
"index", // Name of the source (Acts as the global identifier)
"index.js", // Where to find the file relative to the input directory
[
// Put the plugins here
pluginA()
]
).toConfigurationArray()
];

The above example is the same as writing the configuration below:

import pluginA from "example-package-a";
export default [
{
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}
];

Advance Configuration (with plugins and external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
import pluginB from "example-package-b";
const commonInfoBuilder = new CommonInfoBuilder("src", "dist", "iife");
export default [
...commonInfoBuilder.configureNamedSource(
"index",
"index.js",
[
pluginA()
],
[
// Put the external packages as fourth argument.
// Linked external packages are external packages linked by CDN in the document or by
// other means.
commonInfoBuilder.linkExternalPackage(
"library-a", // Package name used to import in the named source file
"$" // Global identifier for the package
),
// Imported external packages are external packages imported to a file yet it is not
// included in the source.
commonInfoBuilder.importExternalPackage(
"library-b", // Package name
"_", // Global identifier for the package
"dependencies/library-b.js", // Path to the file relative to the input directory
[
// Plugins for bundling the external package
pluginA(),
pluginB()
],
[
// External packages for this external package
]
)
// Rebundled external package is a compilation of other external packages.
commonInfoBuilder.rebundleExternalPackage(
"BundleC", // Global identifier to access all external packages
{
// Name (key) and global identifier (value) of external packages
"framework-d": "frameworkD",
"library-e": "libraryE"
},
"dependencies/bundle-c.js", // Path to the file that imports all external packages
[
// Put plugins here
],
[
// You may put external packages that will not be included in the bundle.
// This argument is optional.
]
)
]
).toConfigurationArray()
];

The above configuration is the same as below:

import pluginA from "example-package-a";
import pluginB from "example-package-b";
export default [
{
"external": [ "library-a", "library-b", "framework-d", "library-e" ],
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"globals": {
"library-a": "$",
"library-b": "_",
"framework-d": "BundleC.frameworkD",
"library-e": "BundleC.libraryE",
},
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}, {
"input": "src/dependencies/library-b.js",
"output": {
"file": "dist/dependencies/library-b.js",
"format": "iife",
"interop": "esModule",
"name": "_"
},
"plugins": [
pluginA(),
pluginB()
]
}, {
"input": "src/dependencies/bundle-c.js",
"output": {
"file": "dist/dependencies/bundle-c.js",
"format": "iife",
"interop": "esModule",
"name": "BundleC"
}
}
];

Other methods and classes

Above examples showed how to use CommonInfoBuilder and its methods toConfigurationArray, linkExternalPackage, importExternalPackage, and rebundleExternalPackage. There are also other methods namely:

  • configureUnnamedSource. Suitable when specifying unnamed source.
  • configureSourceDirectory. Suitable when specifying a collection of unnamed source files which may have common plugin(s) and/or external package(s).
  • getCommonInfo. Returns common information used to create configurations of others.

Some of those methods may create an instance of one of the following classes:

Origin

Some parts of the repository was based from docker_js-mocha branch of Web Template.

The template is specialized for front-end development.

Development

These are the following instructions to start contributing in the project.

Initialization

This repository should be initialized to adhere in Conventional Commits specification for organize commits and automated generation of change log.

Prerequisites

Instructions

By running the command below, all your commits will be linted to follow the Conventional Commits specification.

$ npm install

Or if you have installed pnpm, run the following command:

$ pnpm install

To generate the change log automatically, run the command below:

$ npx changelogen --from=[tag name or branch name or commit itself] --to=master

Assumptions

There are following assumptions considered while building this library:

  • The path of input files and output files have almost the same path. The only difference is their root directory.
  • Some modules may be linked to other separately-bundled modules.
  • Some external packages will be rebundled into one file.
  • The value of output.interop of every configuration is esModule.

Notes

Want to contribute?

Read the contributing guide for different ways to contribute in the project.

Author

Coded by Kenneth Trecy Tobias. Licensed under MIT.

About

Common Rollup configuration builder

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Remove or un-stick sticky/fixed headers that block content (function() { function unstick() { document.querySelectorAll('header, nav, [role="banner"], .header, .navbar, .sticky, .fixed-top, [style*="position: fixed"], [style*="position:sticky"]').forEach(function(el) { if (el.style.position === 'fixed' || el.style.position === 'sticky' || getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') { el.style.position = 'static'; el.style.top = 'auto'; el.style.zIndex = 'auto'; } }); } unstick(); var observer = new MutationObserver(unstick); observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] }); })(); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

Repository files navigation

Web Front-end TestsGitHub linesGitHub release (latest SemVer)GitHub closed issues countGitHub pull request countGitHub language countLines of codeGitHub code size in bytes

Comroconbu

Builds configuration that can be used by Rollup. It will be based from common patterns of configuration in my personal projects.

Installation

Run the following on your command line:

npm install --save-dev git+https://github.com/KennethTrecy/comroconbu#v0.3.0

Usage Example

Basic Configuration (without external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
const commonInfoBuilder = new CommonInfoBuilder(
"src", // Input directory
"dist", // Output directory
"iife" // Output format
);
export default [
...commonInfoBuilder.configureNamedSource(
"index", // Name of the source (Acts as the global identifier)
"index.js", // Where to find the file relative to the input directory
[
// Put the plugins here
pluginA()
]
).toConfigurationArray()
];

The above example is the same as writing the configuration below:

import pluginA from "example-package-a";
export default [
{
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}
];

Advance Configuration (with plugins and external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
import pluginB from "example-package-b";
const commonInfoBuilder = new CommonInfoBuilder("src", "dist", "iife");
export default [
...commonInfoBuilder.configureNamedSource(
"index",
"index.js",
[
pluginA()
],
[
// Put the external packages as fourth argument.
// Linked external packages are external packages linked by CDN in the document or by
// other means.
commonInfoBuilder.linkExternalPackage(
"library-a", // Package name used to import in the named source file
"$" // Global identifier for the package
),
// Imported external packages are external packages imported to a file yet it is not
// included in the source.
commonInfoBuilder.importExternalPackage(
"library-b", // Package name
"_", // Global identifier for the package
"dependencies/library-b.js", // Path to the file relative to the input directory
[
// Plugins for bundling the external package
pluginA(),
pluginB()
],
[
// External packages for this external package
]
)
// Rebundled external package is a compilation of other external packages.
commonInfoBuilder.rebundleExternalPackage(
"BundleC", // Global identifier to access all external packages
{
// Name (key) and global identifier (value) of external packages
"framework-d": "frameworkD",
"library-e": "libraryE"
},
"dependencies/bundle-c.js", // Path to the file that imports all external packages
[
// Put plugins here
],
[
// You may put external packages that will not be included in the bundle.
// This argument is optional.
]
)
]
).toConfigurationArray()
];

The above configuration is the same as below:

import pluginA from "example-package-a";
import pluginB from "example-package-b";
export default [
{
"external": [ "library-a", "library-b", "framework-d", "library-e" ],
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"globals": {
"library-a": "$",
"library-b": "_",
"framework-d": "BundleC.frameworkD",
"library-e": "BundleC.libraryE",
},
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}, {
"input": "src/dependencies/library-b.js",
"output": {
"file": "dist/dependencies/library-b.js",
"format": "iife",
"interop": "esModule",
"name": "_"
},
"plugins": [
pluginA(),
pluginB()
]
}, {
"input": "src/dependencies/bundle-c.js",
"output": {
"file": "dist/dependencies/bundle-c.js",
"format": "iife",
"interop": "esModule",
"name": "BundleC"
}
}
];

Other methods and classes

Above examples showed how to use CommonInfoBuilder and its methods toConfigurationArray, linkExternalPackage, importExternalPackage, and rebundleExternalPackage. There are also other methods namely:

  • configureUnnamedSource. Suitable when specifying unnamed source.
  • configureSourceDirectory. Suitable when specifying a collection of unnamed source files which may have common plugin(s) and/or external package(s).
  • getCommonInfo. Returns common information used to create configurations of others.

Some of those methods may create an instance of one of the following classes:

Origin

Some parts of the repository was based from docker_js-mocha branch of Web Template.

The template is specialized for front-end development.

Development

These are the following instructions to start contributing in the project.

Initialization

This repository should be initialized to adhere in Conventional Commits specification for organize commits and automated generation of change log.

Prerequisites

Instructions

By running the command below, all your commits will be linted to follow the Conventional Commits specification.

$ npm install

Or if you have installed pnpm, run the following command:

$ pnpm install

To generate the change log automatically, run the command below:

$ npx changelogen --from=[tag name or branch name or commit itself] --to=master

Assumptions

There are following assumptions considered while building this library:

  • The path of input files and output files have almost the same path. The only difference is their root directory.
  • Some modules may be linked to other separately-bundled modules.
  • Some external packages will be rebundled into one file.
  • The value of output.interop of every configuration is esModule.

Notes

Want to contribute?

Read the contributing guide for different ways to contribute in the project.

Author

Coded by Kenneth Trecy Tobias. Licensed under MIT.

About

Common Rollup configuration builder

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages

, 'i'); if (__m === '*' || __re.test(location.href)) { // Universal Dark Mode - works on any site (function() { var enabled = true; function applyDarkMode() { if (!enabled) return; // Create style element if it doesn't exist var style = document.getElementById('universal-dark-mode-style'); if (!style) { style = document.createElement('style'); style.id = 'universal-dark-mode-style'; document.head.appendChild(style); } // Dark mode CSS - inverts colors but preserves images/video style.textContent = ' /* Invert everything except media */ html { filter: invert(1) hue-rotate(180deg) !important; background: #1a1a2e !important; } /* Restore images, videos, iframes, canvas */ img, video, iframe, canvas, svg, picture, [style*="background-image"] { filter: invert(1) hue-rotate(180deg) !important; } /* Preserve specific elements that should not be inverted */ .no-dark-mode, .no-dark-mode *, [data-theme="light"], [data-theme="light"], .ace_editor, .ace_editor *, .CodeMirror, .CodeMirror *, .monaco-editor, .monaco-editor *, .markdown-body pre, .markdown-body pre *, .highlight, .highlight *, pre code, pre code * { filter: none !important; } /* Fix common UI elements */ .modal, .popup, .dropdown-menu, .tooltip, .popover { filter: invert(1) hue-rotate(180deg) !important; background: #2d2d44 !important; border-color: #444 !important; } /* Scrollbars */ ::-webkit-scrollbar { background: #1a1a2e !important; } ::-webkit-scrollbar-thumb { background: #444 !important; } ::-webkit-scrollbar-thumb:hover { background: #555 !important; } /* Selection */ ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; } ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; } '; } function removeDarkMode() { var style = document.getElementById('universal-dark-mode-style'); if (style) style.remove(); } // Toggle with Alt+Shift+D document.addEventListener('keydown', function(e) { if (e.altKey && e.shiftKey && e.key === 'D') { e.preventDefault(); enabled = !enabled; if (enabled) { applyDarkMode(); console.log('[Universal Dark Mode] Enabled'); } else { removeDarkMode(); console.log('[Universal Dark Mode] Disabled'); } } }); // Apply on load applyDarkMode(); // Re-apply on dynamic content var observer = new MutationObserver(function(mutations) { if (enabled && !document.getElementById('universal-dark-mode-style')) { applyDarkMode(); } }); observer.observe(document.head, { childList: true }); console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle'); })(); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

Repository files navigation

Web Front-end TestsGitHub linesGitHub release (latest SemVer)GitHub closed issues countGitHub pull request countGitHub language countLines of codeGitHub code size in bytes

Comroconbu

Builds configuration that can be used by Rollup. It will be based from common patterns of configuration in my personal projects.

Installation

Run the following on your command line:

npm install --save-dev git+https://github.com/KennethTrecy/comroconbu#v0.3.0

Usage Example

Basic Configuration (without external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
const commonInfoBuilder = new CommonInfoBuilder(
"src", // Input directory
"dist", // Output directory
"iife" // Output format
);
export default [
...commonInfoBuilder.configureNamedSource(
"index", // Name of the source (Acts as the global identifier)
"index.js", // Where to find the file relative to the input directory
[
// Put the plugins here
pluginA()
]
).toConfigurationArray()
];

The above example is the same as writing the configuration below:

import pluginA from "example-package-a";
export default [
{
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}
];

Advance Configuration (with plugins and external packages)

Example of rollup.config.js that imports comroconbu:

import { CommonInfoBuilder } from "comroconbu";
import pluginA from "example-package-a";
import pluginB from "example-package-b";
const commonInfoBuilder = new CommonInfoBuilder("src", "dist", "iife");
export default [
...commonInfoBuilder.configureNamedSource(
"index",
"index.js",
[
pluginA()
],
[
// Put the external packages as fourth argument.
// Linked external packages are external packages linked by CDN in the document or by
// other means.
commonInfoBuilder.linkExternalPackage(
"library-a", // Package name used to import in the named source file
"$" // Global identifier for the package
),
// Imported external packages are external packages imported to a file yet it is not
// included in the source.
commonInfoBuilder.importExternalPackage(
"library-b", // Package name
"_", // Global identifier for the package
"dependencies/library-b.js", // Path to the file relative to the input directory
[
// Plugins for bundling the external package
pluginA(),
pluginB()
],
[
// External packages for this external package
]
)
// Rebundled external package is a compilation of other external packages.
commonInfoBuilder.rebundleExternalPackage(
"BundleC", // Global identifier to access all external packages
{
// Name (key) and global identifier (value) of external packages
"framework-d": "frameworkD",
"library-e": "libraryE"
},
"dependencies/bundle-c.js", // Path to the file that imports all external packages
[
// Put plugins here
],
[
// You may put external packages that will not be included in the bundle.
// This argument is optional.
]
)
]
).toConfigurationArray()
];

The above configuration is the same as below:

import pluginA from "example-package-a";
import pluginB from "example-package-b";
export default [
{
"external": [ "library-a", "library-b", "framework-d", "library-e" ],
"input": "src/index.js",
"output": {
"file": "dist/index.js",
"format": "iife",
"globals": {
"library-a": "$",
"library-b": "_",
"framework-d": "BundleC.frameworkD",
"library-e": "BundleC.libraryE",
},
"interop": "esModule",
"name", "index"
},
"plugins": [
pluginA()
]
}, {
"input": "src/dependencies/library-b.js",
"output": {
"file": "dist/dependencies/library-b.js",
"format": "iife",
"interop": "esModule",
"name": "_"
},
"plugins": [
pluginA(),
pluginB()
]
}, {
"input": "src/dependencies/bundle-c.js",
"output": {
"file": "dist/dependencies/bundle-c.js",
"format": "iife",
"interop": "esModule",
"name": "BundleC"
}
}
];

Other methods and classes

Above examples showed how to use CommonInfoBuilder and its methods toConfigurationArray, linkExternalPackage, importExternalPackage, and rebundleExternalPackage. There are also other methods namely:

  • configureUnnamedSource. Suitable when specifying unnamed source.
  • configureSourceDirectory. Suitable when specifying a collection of unnamed source files which may have common plugin(s) and/or external package(s).
  • getCommonInfo. Returns common information used to create configurations of others.

Some of those methods may create an instance of one of the following classes:

Origin

Some parts of the repository was based from docker_js-mocha branch of Web Template.

The template is specialized for front-end development.

Development

These are the following instructions to start contributing in the project.

Initialization

This repository should be initialized to adhere in Conventional Commits specification for organize commits and automated generation of change log.

Prerequisites

Instructions

By running the command below, all your commits will be linted to follow the Conventional Commits specification.

$ npm install

Or if you have installed pnpm, run the following command:

$ pnpm install

To generate the change log automatically, run the command below:

$ npx changelogen --from=[tag name or branch name or commit itself] --to=master

Assumptions

There are following assumptions considered while building this library:

  • The path of input files and output files have almost the same path. The only difference is their root directory.
  • Some modules may be linked to other separately-bundled modules.
  • Some external packages will be rebundled into one file.
  • The value of output.interop of every configuration is esModule.

Notes

Want to contribute?

Read the contributing guide for different ways to contribute in the project.

Author

Coded by Kenneth Trecy Tobias. Licensed under MIT.

About

Common Rollup configuration builder

Topics

Resources

Contributing

Stars

0 stars

Watchers

1 watching

Forks

Releases

Contributors

Languages