3.0.0 • Public • Published

SGMF Scripts

This repository contains a collection of scrips that are useful for creating Storefront Reference Architecture overlay cartridges. All of the scripts are executable through CLI.

New in v3.0.0

  • Support for Node 18
  • Webpack updated to v5+
  • Renamed master branch to main

Available commands

--help - Generate help message

--upload [path::String] - Upload a file to a sandbox. Requires dw.json file at the root directory.

--uploadCartridge [String] - Upload a cartridge. Requires dw.json file at the root directory.

--test [path::String] - Run unittests on specified files/directories.

--integration [path::String] - Run overlay integration tests on specified files/directories.

--cover [--include **/cartridges/**/*.js] [--exclude **/bin/**,**/cartridges/**] - Run all unittests with coverage report. The include and exclude parameter is meant to limit coverage reporting to the requested paths.

--compile String - Compile css/js files. - either: css or js

--lint String - Lint scss/js files. - either: js or css

--createCartridge String - Create new cartridge structure

--watch - Watch and upload files

Installation and usage

You can install this module from NPM command:

npm install sgmf-scripts --save-dev
npm run test:integration https://hostname/on/
            "type": "node",
            "request": "launch",
            "name": "Mocha overlay Integration Tests",
            "program": "${workspaceFolder}/../sgmf-scripts/index.js",
            "args": [
            "cwd": "${workspaceFolder}",
            "internalConsoleOptions": "openOnSessionStart"
1. From sgmf-scripts repo root directory
npm link
2. From plugin cartridge root directory
npm link sgmf-scripts
you will see something like this to indicate the link has created : 
/Users/xxx/Salesforce/plugin_giftregistry/node_modules/sgmf-scripts -> /usr/local/lib/node_modules/sgmf-scripts -> /Users/xxx/Salesforce/sgmf-scripts
3. To remove the link, just delete the node_modules directory and run npm install again

In order for all commands to work, this script makes a few assumptions:

  • There's a dw.json file at the root of your repository, that contains information with the path to your sandbox, as well as username and password
  • There's a cartridges top level folder that contains your cartridge
  • name property in package.json matches the name of your cartridge, or if it doesn't, there's a packageName property with the name of the cartridge
  • If this an overlay cartridge, package.json contains paths property, that's of type Array and contains key/value pairs with name/path to all cartridges that will come below yours. For example, if you are creating a cartridge that will be overlayed on top of app_storefront_base paths property will look something like this: [{ "base": "../sfra/cartridges/app_storefront_base"}]
  • ESLint and Stylelint are dev-dependencies of your cartridge. You have all required plugins and configs installed as well.
  • There's a webpack.config.js at the top of your project that specifies how to compile client-side JavaScript files.
  • Your package.json file contains browserslist key that specifies which browsers you are targeting, to compile SCSS files with correct prefixes. See for more details




Package Sidebar


npm i sgmf-scripts

Weekly Downloads






Unpacked Size

58.2 kB

Total Files


Last publish


  • kevinxh
  • adamraya
  • alex_clark_sf
  • jimlynch-sf
  • ecchessman
  • s.hussain
  • zsardone
  • anndiep-sfcc
  • ivolodin