@beemo/dev v2.1.2
Beemo - Development configuration module
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.
yarn install --dev @beemo/devRequirements
- Source files are in a folder called
src. - Tests files are in a folder called
testsrelative to source, or__tests__within source. - Declaration/types files are in a folder called
typesrelative to source. - Custom TypeScript paths should start with
:instead of@to avoid NPM supply chain attacks.
Setup
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.
// .config/beemo.ts
export default {
module: '@beemo/dev',
drivers: ['babel', 'eslint', 'jest', 'prettier', 'typescript'],
settings: {},
};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. Iftrueis passed, will be resolved using workspaces, otherwise requires an array of explicit strings. Defaults tofalse.react(boolean | classic | automatic) - Enable React and JSX support for all drivers. Defaults tofalse.
Overrides
If you would like to override a driver config, create a .config/beemo/<driver>.ts file in the root
of the project.
View the official Beemo docs for more information.
// .config/beemo/eslint.ts
export default {
rules: {
'no-param-reassign': 'off',
},
};Drivers
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. - Sets
--extensionsto all JS/TS extensions. - If no out provided, defaults to
src/ --out-dir lib/.
- Always passes
- ESLint
- Always passes
--cache --color --fix. - Sets
--extensionsto all JS/TS extensions. - If no target provided, defaults to linting
src/ tests/. - If using workspaces, will target the above in each package.
- Generates Prettier and TypeScript configs when enabled.
- Always passes
- Jest
- Always passes
--colors --logHeapUsage. - Sets
NODE_ENV=testandTZ=UTC. - Generates a Babel config when enabled.
- Supports projects through the
projectssetting.
- Always passes
- Prettier
- If no args provided, defaults to
--write .. - Provides a default ignore list of common files.
- If no args provided, defaults to
- TypeScript
- Modern/next ECMAScript support.
- Type-checking only.
Please refer to their documentation for more information on how each one is configured.
Scaffolds
Once your project has been configured to use Beemo, you can scaffold specific files using our built-in templates.
project/dotfiles
Will scaffold common dotfiles like .gitignore.
beemo scaffold project dotfilesproject/github
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. Also verifies Packemon packing and Docusaurus building passes.deploy- Deploys a Docusaurus website on each master commit. RequiresGH_USERandGH_PAGES_DEPLOYsecrets.pr- Validates a pull request title using the conventional-changelog-beemo preset.
beemo scaffold project githubproject/package
Will append fields to the root package.json.
- Adds
scriptsfor common actions like building, linting, testing, etc. - When passed
--workspaces, setsprivateandworkspacestopackages/*.
beemo scaffold project packageworkspace/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 framework3 years ago
3 years ago
3 years ago
3 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
4 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago
5 years ago