Official Beemo configuration module for modern local development.
npm install @beemo/dev


An official TypeScript-only "batteries included" Beemo
configuration module that provides pre-packaged configs for the
Babel, ESLint, Jest, Prettier, and TypeScript drivers and developer tools.
``bash`
yarn install --dev @beemo/dev
- Source files are in a folder called src.tests
- Tests files are in a folder called relative to source, or __tests__ within source.types
- Declaration/types files are in a folder called relative to source.:
- Custom TypeScript paths should start with instead of @ to avoid
NPM supply chain attacks.
Create a .config/beemo.ts file in the root of your project that configures @beemo/dev as the
configuration module. Be sure to enable all drivers and any settings.
`ts`
// .config/beemo.ts
export default {
module: '@beemo/dev',
drivers: ['babel', 'eslint', 'jest', 'prettier', 'typescript'],
settings: {},
};
The following Beemo settings can be defined and will be passed to applicable drivers.
- decorators (boolean) - Enable decorators for Babel and TypeScript drivers. Defaults tofalse
.esm
- (boolean) - Enable ECMAScript module "mode" for tools that support it (Babel, Jest, etc).node
- (boolean) - Current project will target Node.js instead of the browser. Defaults tofalse
.projects
- (boolean | string[]) - Enable Jest projects. If true is passed, will be resolvedfalse
using workspaces, otherwise requires an array of explicit strings. Defaults to .react
- (boolean | classic | automatic) - Enable React and JSX support for all drivers. Defaultsfalse
to .
If you would like to override a driver config, create a .config/beemo/ file in the root
of the project.
View the official Beemo docs for more information.
`ts`
// .config/beemo/eslint.ts
export default {
rules: {
'no-param-reassign': 'off',
},
};
The following drivers are directly supported in this configuration module, and automatically passed
common command line options when being ran.
- Babel
- Always passes --copy-files.--extensions
- Sets to all JS/TS extensions.src/ --out-dir lib/
- If no out provided, defaults to .--cache --color --fix
- ESLint
- Always passes .--extensions
- Sets to all JS/TS extensions.src/ tests/
- If no target provided, defaults to linting .--colors --logHeapUsage
- If using workspaces, will target the above in each package.
- Generates Prettier and TypeScript configs when enabled.
- Jest
- Always passes .NODE_ENV=test
- Sets and TZ=UTC.projects
- Generates a Babel config when enabled.
- Supports projects through the setting.--write .
- Prettier
- If no args provided, defaults to .
- Provides a default ignore list of common files.
- TypeScript
- Modern/next ECMAScript support.
- Type-checking only.
> Please refer to their documentation for more information on how each one is configured.
Once your project has been configured to use Beemo, you can scaffold specific files using our
built-in templates.
Will scaffold common dotfiles like .gitignore.
``
beemo scaffold project dotfiles
Will scaffold GitHub repository workflow files to .github. Supports the following workflows:
- build - Builds, tests, lints, and type checks the project on each pull request and master merge.deploy
Also verifies Packemon packing and Docusaurus
building passes.
- - Deploys aGH_USER
Docusaurus website on each
master commit. Requires and GH_PAGES_DEPLOY secrets.pr
- - Validates a pull request title using the
conventional-changelog-beemo preset.
``
beemo scaffold project github
Will append fields to the root package.json.
- Adds scripts for common actions like building, linting, testing, etc.--workspaces
- When passed , sets private and workspaces to packages/*.
``
beemo scaffold project package
Will scaffold a new package into a packages workspace. Creates CHANGELOG.md, README.md,LICENSE, and package.json files.
```
beemo scaffold workspace package --owner milesj --repo aesthetic framework