To install Riba and the Riba Shopify module:
npm install --save @ribajs/core @ribajs/utils @ribajs/shopify
yarn add -D @babel/core @babel/plugin-proposal-class-properties @babel/plugin-proposal-object-rest-spread @babel/plugin-proposal-optional-chaining @babel/plugin-syntax-export-default-from @babel/plugin-transform-runtime @babel/preset-env @babel/preset-typescript @babel/runtime-corejs3 babel-plugin-array-includes
yarn add -D eslint prettier eslint-config-prettier eslint-plugin-prettier @typescript-eslint/eslint-plugin @typescript-eslint/experimental-utils @typescript-eslint/parser @typescript-eslint/typescript-estree
If you use Visual Studio code it is recommended to install the following plugins:
These two plugins automatically use the .eslintrc.js from thisk repository, the first plugin shows you possible errors, the second one formats your code automatically when you save it.
yarn add -D webpack webpack-cli webpack-stream typescript @yarnpkg/pnpify html-loader babel-loader
Add webpack to resolutions
in your package.json to be sure to use the latest Webpack v4 version:
"resolutions": {
"webpack": "^4.42.1"
}
To regist the module create a src/ts/main.ts
and insert import shopifyModule from '@ribajs/shopify';
, than you can regist the module with riba.module.register(shopifyModule.init());
:
The main.ts could look like this:
import { Riba, coreModule } from '@ribajs/core';
import { shopifyModule } from '@ribajs/shopify';
import { ready } from '@ribajs/utils/src/dom';
const riba = new Riba();
const model = {};
riba.module.register(coreModule.init());
riba.module.register(shopifyModule.init());
ready(() => {
riba.bind(document.body, model);
});
Some files are written in TypeScript. To build the files to JavaScript run
yarn run build
To build the exclude postalcode run
yarn run build:postalcodes
this will generate the JavaScript files localed in src/js/checkout_exclude-express-postalcodes_XY.js
.
These files are used in the checkout to detect whether express shipping is allowed or not for the customer postal code.