Skip to content

Repository files navigation

@rstackjs/create-toolkit

A shared package for create-rspack, create-rsbuild, create-rslib and more.

This package should only be used in Rstack projects.

Note

This package was renamed from create-rstack to @rstackjs/create-toolkit. Update your dependencies and imports to use the new package name.

npm version license

Install

npm add @rstackjs/create-toolkit -D

Features

Configure Built-in Tools

The toolkit provides ESLint, Rslint, Biome, and Prettier as built-in tools. Use builtinTools to control which of them are available without affecting tools added through extraTools:

create({
  // Disable all built-in tools.
  builtinTools: [],
  // Custom tools remain available.
  extraTools: [{ value: 'custom-tool', label: 'Custom Tool' }],
  // ...other options
});

Omit the option to enable every built-in tool. Pass an array such as ['rslint', 'prettier'] to enable only those tools.

NPM Template Support

@rstackjs/create-toolkit supports using npm packages as templates, allowing users to create projects from custom templates published to npm.

Usage

# Using npm package name
npm create rsbuild@latest my-project -- --template my-template-package

# Using scoped package
npm create rsbuild@latest my-project -- --template @scope/template-package

# Using explicit npm: prefix
npm create rsbuild@latest my-project -- --template npm:my-template-package

# With specific version
npm create rsbuild@latest my-project -- --template my-template-package --template-version 1.2.3

Template Package Structure

Your npm template package should have one of the following structures:

my-template-package/
├── template/              # Preferred
│   ├── package.json
│   └── src/
├── templates/
│   └── app/              # Alternative
└── (root)                # Fallback
    ├── package.json
    └── src/

Caching Strategy

  • Templates with latest version are always re-installed to ensure the latest version
  • Specific versions are cached in .temp-templates/ for faster reuse

API

import {
  isNpmTemplate,
  resolveCustomTemplate,
  resolveNpmTemplate,
} from '@rstackjs/create-toolkit';

// Check if template input is an npm package
if (isNpmTemplate(templateInput)) {
  // Resolve npm template to local path
  const templatePath = resolveCustomTemplate(templateInput, version);
}

Examples

Project Link
Rsbuild create-rsbuild
Rslib create-rslib

image

License

MIT.

About

A shared package for create-rspack, create-rsbuild, create-lib and more.

Topics

Resources

Stars

30 stars

Watchers

3 watching

Forks

Releases

Used by

Contributors

Languages