
Security News
The Changelog Podcast: Practical Steps to Stay Safe on npm
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.
@openeuropa/bcl-builder
Advanced tools
The @openeuropa/bcl-builder is a package providing scripts to be executed via
the command line, styles, scripts, copy, rename and sprite.
They can be used respectively to compile SASS files and minify css
files, compile and minify js files, to copy files or rename files and to generate
svg sprites.
It comes with a bin file that is available when the package is installed and
can be run as npm run ecl-builder scriptName.
It supports a configuration file bcl-builder.config.js where each script can
be configured to perform specific operations in the enviroment where they are
used.
The builder uses by default a bcl-builder.config.js in the same folder where the builder script is executed. This file will define the different operations you want to perform via the builder. The config file is basically an export of the configuration for the different commands which all supports multiple operations as items in an array.
module.exports = { scripts: [{ entry, dest, options } ...], styles: [{ entry, dest, options } ...], rename: [{ entry, dest, options } ...], copy: [{ from, to, options } ...], sprite: [[{ entry, dest, options } ...], };
styles: [ { entry (string), dest (string), options (object) [plugins for postcss] https://github.com/postcss/postcss/blob/main/docs/plugins.md { minify (includes css nano for minification) } }, ],
scripts: [ { entry (string), dest (string), options: (object) [rollup js configuration https://rollupjs.org/guide/en/#javascript-api] }, }, ],
copy: [ { from: (string), to: (string), options: (object) [copyfiles api conf https://www.npmjs.com/package/copyfiles], }, ],
rename: [ { from: (string), to: (string), options: (object) { search: (glob), operation: [prefix|suffix|rewrite|extension], }, }, ],
sprite: [ { entry: (string), dest: (string), options: (object) { file: (string) (defaut: bcl-icons.svg), list: (array of file names) (optional), }, }, ],
* Example config object: {
colorScheme: [
{
entry: path.resolve("resources/sass/color-scheme-variables.scss"),
dest: path.resolve(outputFolder, "assets/css/color_scheme.min.css"),
options: {
includePaths,
sourceMap: "file",
},
},
],
This following example is the entry of the colorScheme. The scss file should look like this. It also support multiple color schemes. Example SCSS file of color-scheme.scss:
$colors-schemes: (
"ocean": (
"primary": #4eac00,
"secondary": #fbff00,
"danger": #ff8800,
"success": #4dff00,
"text": #294d26,
"background": #ffdfb0,
"link": #7b00ff,
),
);
You can find multiple plugins here: Postcss Plugins
The color-scheme enables the possibility to theme the colors used in BCL. It overrides the variables $theme-colors used by Bootstrap (Bootstrap Theme Colors).
We've also added some new variables that overwrite and make use of extra classes:
.text-color-default: Text color is changed based on the 'text' variable, overriding all text colors inside a component..bg-default: Background color is changed based on the 'background' variable. It adds a background for the component but does not override if it already has a bg class (e.g., bg-primary).Step 1: Depending on your package manager:
Yarn:
NPM:
Step 2: Add the following bcl-builder.config.js file:
colorScheme: [
{
entry: path.resolve(outputFolder, "path to the color-scheme scss file"),
dest: path.resolve(outputFolder, "compiled "),
options: {
includePaths,
minify: true,
sourceMap: "file",
},
},
],
Step 3: Add in your package.json the following command:
"build:color-scheme": "bcl-builder color-scheme",
Note: We are using (npm-run-all package) in BCL in order for all scripts for bcl-builder to be run at once: Example:
"build": "npm-run-all build:*",
"build:styles": "bcl-builder styles",
"build:color-scheme": "bcl-builder color-scheme",
"build:scripts": "bcl-builder scripts",
"build:copy": "bcl-builder copy",
"build:sprite": "bcl-builder sprite",
FAQs
Bootstrap Component Library builder
We found that @openeuropa/bcl-builder demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 4 open source maintainers collaborating on the project.
Did you know?

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.

Security News
Learn the essential steps every developer should take to stay secure on npm and reduce exposure to supply chain attacks.

Security News
Experts push back on new claims about AI-driven ransomware, warning that hype and sponsored research are distorting how the threat is understood.

Security News
Ruby's creator Matz assumes control of RubyGems and Bundler repositories while former maintainers agree to step back and transfer all rights to end the dispute.