1.0.11 • Published 7 years ago

bblp-build v1.0.11

Weekly downloads
1
License
-
Repository
-
Last release
7 years ago

bblp-build:

Bundle a Backbase Launchpad static item.

INSTALL

  • Install library
npm install --save-dev bblp-build
yarn add --dev bblp-build

USAGE

  • Display help
bblp-build --help
  • Display version
bblp-build --version

## build current item
bblp-build ./
bblp-build ./collection/src/path/to/my/widget

Arguments:

Options:

  • - a --all false Build all external dependencies.
  • - t --templates false Bundle HTML templates into build file.
  • - m --moduleId false Build with AMD module ID in definition.
  • - o --output ./dist Output directory path.
  • - e --expand false Do not minify javascript & css files.

Build theme

USAGE

  • Display help
bblp-build theme --help

bblp-build theme ./ universal

Arguments:

Options:

  • - A --no-assets false Do include assets files e.g. fonts/images.
  • - o --output ./dist Output directory path.
  • - e --expand false Do not minify javascript & css files.
  • -b, --base-path ./ Theme base path e.g. bower_components

Examples

Single item build

bblp-build

Single theme build

bblp-build theme

Collection build

Collection pom.xml

....
<plugin>
    <groupId>com.github.eirslett</groupId>
    <artifactId>frontend-maven-plugin</artifactId>
    <version>1.0</version>
    <executions>
        <execution>
            <id>install node and npm</id>
            <goals>
                <goal>install-node-and-npm</goal>
            </goals>
            <phase>install</phase>
            <configuration>
                <nodeVersion>v4.6.0</nodeVersion>
                <npmVersion>3.3.6</npmVersion>
            </configuration>
        </execution>
        <execution>
            <id>npm-install</id>
            <phase>install</phase>
            <goals>
                <goal>npm</goal>
            </goals>
            <configuration>
                <arguments>install --loglevel error</arguments>
            </configuration>
        </execution>
        <execution>
            <id>build</id>
            <phase>install</phase>
            <goals>
                <goal>npm</goal>
            </goals>
            <configuration>
                <arguments>run build --loglevel error</arguments>
            </configuration>
        </execution>
    </executions>
</plugin>
...

Collection package.json:

{
  "name": "collection-retail",
  "version": "1.0.2",
  "scripts": {
    "build": "node ./scripts/build.js ./src"
  },
  "devDependencies": {    
    ....
    "bblp-build": "^1.0.4",
    "shelljs": "^0.7.4"
  }
}

Collection scripts/build.js: This is just and example you can customize it based on the project structure.

'use strict';
/**
* ------------------------------------------------------------------------
* Building statics using bblp-build command
* requires node v4.2.x LTS argon
* ------------------------------------------------------------------------
*/
const path = require('path');
const sh = require('shelljs');

const basePath = process.argv[2] || '../src';
const src = [
  path.resolve(basePath , 'widget-*'),
  path.resolve(basePath , 'theme-*'),
];

const skip = [
  path.resolve(basePath , 'widget-demo'),
];

const BBLP =  path.resolve(__dirname, '../node_modules/bblp-build/bin/bblp-build');

let cmd = '';

let buildExitCode = 0; //optimistic
sh.ls('-d', src )
  .filter( file => skip.indexOf(file) < 0)
  .forEach( file => {
      const item = path.basename(file);

      // build theme
      if(item.indexOf('theme') >= 0 ) {
        cmd = `node ${BBLP} theme ${file}`;
      } else {
        cmd = `node ${BBLP} ${file} --templates`;
      }

      console.log(`Building ${item}... `);
      console.log(`[EXEC]: ${cmd}`);
      let res = sh.exec(cmd);
      if(res.code > 0 ) {
        buildExitCode = res.code;
      }
});
if(buildExitCode > 0 ) {
  console.log(`[BUILD FAILED]`);
} else {
  console.log(`[BUILD SUCCESS]`);
}
process.exit(buildExitCode);