@ed-g/sgmf-scripts v3.0.2
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
masterbranch tomain
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-devnpm run test:integration https://hostname/on/demandware.store/Sites-RefArch-Site/en_US {
"type": "node",
"request": "launch",
"name": "Mocha overlay Integration Tests",
"program": "${workspaceFolder}/../sgmf-scripts/index.js",
"args": [
"--integration",
"test/integration/**/*.js",
"--baseUrl",
"https://hostname/on/demandware.store/Sites-RefArch-Site/en_US",
],
"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 againIn order for all commands to work, this script makes a few assumptions:
- There's a
dw.jsonfile at the root of your repository, that contains information with the path to your sandbox, as well as username and password - There's a
cartridgestop level folder that contains your cartridge nameproperty inpackage.jsonmatches the name of your cartridge, or if it doesn't, there's apackageNameproperty with the name of the cartridge- If this an overlay cartridge,
package.jsoncontainspathsproperty, that's of typeArrayand 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 ofapp_storefront_basepathsproperty 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.jsonfile containsbrowserslistkey that specifies which browsers you are targeting, to compile SCSS files with correct prefixes. See https://github.com/ai/browserslist for more details