Skip to content

Scripts to aid in testing, releasing, and linting.

License

Notifications You must be signed in to change notification settings

stoplightio/scripts

Repository files navigation

@stoplight/scripts

Maintainability Test Coverage

Usage

Create a new library:

npx @stoplight/scripts create:lib

Commands

sl-scripts build

Build source code

USAGE
  $ sl-scripts build [--verbose]

FLAGS
  --verbose  moar logs

DESCRIPTION
  Build source code

EXAMPLES
  $ sl-scripts build

See code: src/commands/build/index.ts

sl-scripts bundle

Bundle source code

USAGE
  $ sl-scripts bundle [--minify] [--verbose]

FLAGS
  --minify   minify output using terser
  --verbose  moar logs

DESCRIPTION
  Bundle source code

EXAMPLES
  $ sl-scripts bundle

See code: src/commands/bundle/index.ts

sl-scripts create:lib

Scaffold out a new library.

USAGE
  $ sl-scripts create:lib

DESCRIPTION
  Scaffold out a new library.

EXAMPLES
  $ sl-scripts create:lib

See code: src/commands/create/lib.ts

sl-scripts release

Publish new src or docs release.

USAGE
  $ sl-scripts release [--verbose]

FLAGS
  --verbose  moar logs

DESCRIPTION
  Publish new src or docs release.

EXAMPLES
  $ sl-scripts release

  $ sl-scripts release:docs

See code: src/commands/release/index.ts

sl-scripts release:docs

Push built docs to github pages.

USAGE
  $ sl-scripts release:docs [--dry-run] [--verbose]

FLAGS
  --dry-run  run the release process but do not publish
  --verbose  moar logs

DESCRIPTION
  Push built docs to github pages.

EXAMPLES
  $ sl-scripts release:docs

See code: src/commands/release/docs.ts

Overriding Configs

Jest

Simply create a jest.config.js file in the root of your project, and extend the default config. For example:

// ./jest.config.js
module.exports = {
  preset: '@stoplight/scripts',
};

TS

Simply create a tsconfig.json file in the root of your project, and extend the default config. For example:

// ./tsconfig.json
{
  "extends": "@stoplight/scripts/tsconfig.json",
  "include": ["src"],
  "compilerOptions": {
    "outDir": "dist"
  }
}

Semantic Release

Simply add a release property to your package.json file. For example:

// ./package.json
{
  // ... props
  "release": {
    "pkgRoot": "dist",
    "plugins": ["@semantic-release/commit-analyzer", "@semantic-release/release-notes-generator"]
  }
  // ... props
}

Rollup

By default all dependencies and peerDependencies declared in your package.json will be treated as external deps during sl-scripts bundle. If you would like to always bundle a dep, list those deps in your package.json file like so:

{
  "name": "your-package",
  "version": "0.0.0",
  "rollup": {
    "bundleDeps": ["dep-1", "dep-2"]
  }
}