Lumos
Centralized CLI for JavaScript and TypeScript dev tools. Built on and powered by Beemo.
Usage
Prerequisites
- package.json
- install @rajzik/lumos
Setup initial project with this package:
npm init
npm install --save-dev @rajzik/lumos
npx lumos-setup
yarn:
yarn init
yarn add --dev @rajzik/lumos
npx lumos-setup
Eject files
This will eject files and remove dependency of this package.
npx lumos-eject
Scaffold dotfile
npx lumos scaffold project dotfiles
Create configs
npx lumos create-config [driver list]
npx lumos create-config eslint prettier
Running drivers
npx lumos <name of driver> [--cli options]
npx lumos eslint
npm lumos typescript --build --reference-workspaces
Supported drivers
Set drivers manually
{
"lumos": {
"drivers": ["babel", "eslint"]
}
}
Supported settings
export interface LumosSettings {
buildFolder: string;
coverage: number;
docsFolder: string;
env: LumosEnvSetting;
graphql: boolean;
library: boolean;
next: boolean;
node: boolean;
testingLibrary: boolean;
react: boolean;
srcFolder: string;
testsFolder: string;
typesFolder: string;
entryPoint?: string;
publicPath?: string;
nextTarget?: 'server' | 'serverless';
root?: string;
parallel?: boolean | string | number;
testResultFileName?: string;
emptyBabelConfig: boolean;
nextOptions?: Partial<NextConfigObject>;
allowJs: boolean;
skipLibCheck: boolean;
}
Default values
{
buildFolder: 'lib',
coverage: 75,
docsFolder: 'docs',
env: {},
graphql: false,
library: false,
next: false,
node: false,
react: false,
testingLibrary: false,
srcFolder: 'src',
testsFolder: 'tests',
typesFolder: 'types',
emptyBabelConfig: false,
allowJs: false,
skipLibCheck: false,
root: process.cwd(),
parallel: true,
testResultFileName: 'TEST-RESULTS.xml',
}
Edit this settings
in package json
{
"lumos": {
"settings": {
"buildFolder": "lib",
"coverage": 75
}
}
}
Modifying configs
Modify package.json
{
"lumos": {
"eslint": {
// name of the driver
"rules": {
"import/prefer-default-export": "off"
}
}
}
}
configs
folder
Create file in Create javascript file inside this folder with name of driver. For example: configs/eslint.js
module.exports = {
rules: {
'import/prefer-default-export': 'off',
},
};