one-app
Server consists of NPM Script Commands that determine its runtime configuration and behaviors.
npm run <one-app-npm-command> [--] [--some-flag]
# e.g. npm run test:unit -- --watch
We describe each command and a description of its usage below.
Contents
- Install Commands
- Development Commands
- Start Commands
- Build Commands
- Clean Commands
- Test Commands
Command | Description |
---|---|
preinstall |
Runs check-engines package to ensure a compatible Node version is used before npm install . |
postinstall |
Runs a build after npm install . |
💬 These commands are for Development only
Command | Description |
---|---|
serve-module |
Accepts a path to a Holocron Module and adds it to the local development CDN. See serve-module Arguments. |
drop-module |
Accepts a Holocron Module name and removes the Module from the local development CDN. See drop-module Arguments. |
set-middleware |
Accepts a file path to JS file that defines custom Express Middleware for the development proxy. See set-middleware Arguments. |
set-dev-endpoints |
Accepts a Node file containing development endpoints for the development proxy. See set-dev-endpoints Arguments. |
npm run serve-module <path-to-module-folder>...
# e.g. npm run serve-module ../../my-module
npm run drop-module <module-name>...
# e.g. npm run drop-module my-module
npm run set-middleware <path-to-middleware-js>
# e.g. npm run set-middleware ../dev.middleware.js
The contents of the Express Middleware JS file should match the following shape:
Shape
// (app: ExpressApp) => (req: ExpressRequest, res: ExpressResponse, next: ExpressNext) => undefined
module.exports = (app) => (req, res, next) => {
next();
};
npm run set-dev-endpoints <path-to-endpoints-js>...
# e.g. npm run set-dev-endpoints ../dev.endpoints.js
The contents of the endpoints JS file should match the following shape:
Shape
module.exports = {
someIdReference: {
devProxyPath: String, // String local URL path
destination: String, // String of Destination Hostname
},
// ... More entries of the same shape
};
Command | Description |
---|---|
start |
Runs one-app Server and accepts the flags listed below. |
start:watch |
Executes one-app Server and watches Server source files with nodemon . When source changes, one-app reloads with the npm start . This command accepts all the flags as start . |
prestart:prod-sample |
Runs build:sample-modules before start:prod-sample . |
start:prod-sample |
Runs a Docker Compose file to start up the Integration Test Suite containers. |
Command | Description |
---|---|
build |
Using the concurrently package, runs build:server and build:bundle . |
build:server |
Executes Babel to transpile ES6 Server source files |
build:bundle |
Executes One App Bundler to build Browser assets |
build:artifacts:statics |
Runs Static Assets Script for Integration Tests |
build:prod-sample |
Runs build:sample-modules and runs the Build One App Docker Setup Script for Integration Tests |
build:sample-modules |
Builds the Holocron Modules in prod-sample/sample-modules folder for Integration Tests. See build:sample-modules Usage. |
npm run build:sample-modules [--] [--archive-built-artifacts]
# e.g. npm run build:sample-modules -- --archive-built-artifacts
Flag | Description |
---|---|
--archive-built-artifacts |
Runs tar and gzip on the the built sample Holocron Modules bundles. Used in Integration Test Suite |
[ONE_CONFIG_ENV=<runtime-level>] npm run start (--) (--root-module-name=<root-module-name>) [--module-map-url=<module-map-url>] [--use-middleware]
# e.g. ONE_CONFIG_ENV=development npm run start -- --root-module-name=my-root-module
Flag | Description |
---|---|
--root-module-name |
Name of the Holocron Module that serves as the entry point to your application. |
--module-map-url |
Remote Module Map URL for one-app-dev-cdn to proxy. For Development. |
--use-middleware |
Apply a custom middleware configuration for one-app-dev-proxy . For Development. |
--use-host |
Use req.headers.host instead of localhost . Passed as true or false to one-app-dev-cdn . For Development. |
Please see the Environment Variables API docs.
Command | Description |
---|---|
clean |
Executes clean:build and clean:test . |
clean:build |
Removes folders and files related to Babel and Webpack builds. |
clean:test |
Removes Jest Integration Test Report folder. |
Command | Description |
---|---|
test |
Runs all test:* scripts. |
test:unit |
Runs all Jest Unit Tests. Accepts Jest flags. |
test:lint |
Runs ESLint rules against source. |
pretest:integration |
Using concurrently , runs build:prod-sample and pulls Docker containers to prepare the Integration Test Suite. |
test:integration |
Executes the Integration Test Suite using Jest. |
test:danger |
Runs the DangerJS tool that returns bundle size stats and a preflight checklist for PRs. |
test:git-history |
Validates the Git commit message format using the commitlint tool. |
test:lockfile |
Validates that the package-lock.json file contains valid NPM registry URLs using the lockfile-lint tool. |
📘 More Information
- Library:
one-app-dev-cdn
- Library:
one-app-dev-proxy
- Development Tools API Docs