Build tool for storefronts
Last updated 3 months ago by brian-gonzalez .
Repository · Bugs · Original npm · Tarball · package.json
$ cnpm install @borngroup/born-build 
SYNC missed versions from official npm registry.

#BORN build process with Revolver

There are different scenarios covered by Revolver when working on a project with single or multiple store configurations. Revolver adapts to your setup depending on the parameters passed and which files are available.

##Multiple stores configurations with either a main or independent store cartridge(s):

Let’s say you have multiple stores and each has its own styles and own set of JS. To build the default store, all you need to run is:

npm run [task]

To build a specific store or cartridge, run:

npm run [task] --env.cartridge=cartridge_name

Note: replace “[task]” with the task you want to run, such as build or watch.

Now let's say you need your "main_cartridge" to leverage almost all of the JS functionality from your "base_cartridge". However, you'd like to modify a few files in your "main_cartridge" without having to copy all of the source code from "base_cartridge". You can achieve this by setting the revolverPath property on your package.json to follow the priority you need:

"scripts":  {
"config":  {
    "cartridge": “main_cartridge”,
    "js": {
        "revolverPath": "main_cartridge, base_cartridge"

Then simply run:

npm run [task]

This also works if you need to build a specific cartridge. Your revolverPath needs to include the extra cartridge:

"revolverPath": "cartridge_name, main_cartridge, base_cartridge"

And then you can run:

npm run [task] --env.cartridge=cartridge_name

You can override the resolverPath value at run time by passing it as a parameter:

npm run [task] --env.revolverPath=third_cartridge,fourth_cartridge

You can run parallel builds by specifying a list of cartridges on the cartridge variable:

npm run [task] --env.cartridge=main_cartridge,second_cartridge,third_cartridge

Note: When running a command, use commas and no spaces between cartridge names. This is a limitation with Node.

Each cartridge must have at least one app.js file (inside the js/ or js/born/ directories, or both). Otherwise it means this cartridge is not meant to host built files, so the build will dump the files into the cartridge specified in config.cartridge instead.

##Single store with single or multiple locales:

Create a style.scss file inside the respective locale. If you have more than one locale, @import all the partials you need from the default or specific locale, then just replace those that are different for your current locale.


npm run [task]

This assumes you've setup a default cartridge and an optional set of styles.inputPath and styles.outputPath (defaults to "cartridges/{cartridge}/cartridge/scss/**/*.scss" and "cartridges/{cartridge}/cartridge/static/{subDirectory}/css/{outputFile}.css" respectively) on your package.json

"scripts":  {
"config":  {
    "cartridge": “your_main_cartridge”,
    "styles": {
      "inputPath": "cartridges/{cartridge}/cartridge/scss/**/*.scss",
      "outputPath": "cartridges/{cartridge}/cartridge/static/{subDirectory}/css/{outputFile}.css"
"devDependencies": {

###Styles object:

Property Description
inputPath (optional) is the input path to your .scss files. The string uses a combination of interpolation and glob's magic patterns to determine the exact file that needs to be parsed. This property accepts a dynamic value for the {cartridge}.
outputPath (optional) is the output path of your built .css files. The string works similar to styles.inputPath, but in addition to having a {cartridge} dynamic value, you can also format your string using the {subDirectory} and {outputFile} values.

###Styles object dynamic values:

Value Description
{cartridge} It's value gets replaced with the cartridge name being processed during build time. For example, if you pass --env.cartridge=your_main_cartridge,your_second_cartridge, then the value of {cartridge} will become each of the specified cartridges
{subDirectory} It's value will be equal to the sub-directory found by the build when expanding the glob pattern in the styles.inputPath, if any. For example, say your inputPath is "cartridges/{cartridge}/cartridge/scss/**/*.scss", which then becomes "cartridges/your_main_cartridge/cartridge/scss/en_US/main-styles.scss". In this example, the value of {subDirectory} will be "en_US". Note: Because CSS url references are relative to the file's location, built .css files will be placed in the specified output directory and will not carry their input sub-directory structure, other than the base {subDirectory}.
{outputFile} It's value will be equal to the file name found by the build when expanding the glob pattern in the styles.inputPath, if any. For example, say your inputPath is "cartridges/{cartridge}/cartridge/scss/**/*.scss", which then becomes "cartridges/your_main_cartridge/cartridge/scss/en_US/main-styles.scss". In this example, the value of {subDirectory} will be "main-styles".

Current Tags

  • 1.1.9                                ...           latest (3 months ago)

16 Versions

  • 1.1.9                                ...           3 months ago
  • 1.1.8                                ...           6 months ago
  • 1.1.7                                ...           7 months ago
  • 1.1.6                                ...           9 months ago
  • 1.1.5                                ...           9 months ago
  • 1.1.4                                ...           a year ago
  • 1.1.3                                ...           a year ago
  • 1.1.2                                ...           a year ago
  • 1.1.1                                ...           a year ago
  • 1.1.0                                ...           a year ago
  • 1.0.5                                ...           a year ago
  • 1.0.4                                ...           a year ago
  • 1.0.3                                ...           a year ago
  • 1.0.2                                ...           a year ago
  • 1.0.1                                ...           a year ago
  • 1.0.0                                ...           a year ago
Today 0
This Week 0
This Month 17
Last Day 0
Last Week 16
Last Month 1
Dev Dependencies (0)
Dependents (0)

Copyright 2014 - 2017 © taobao.org |