0.2.0 • Published 20 days ago
@aegenet/yawt v0.2.0
Yawt
Yet Another Workspace Toolkit - The purpose of this package is to provide a set of tools to help you manage your workspace.
💾 Installation
npm i @aegenet/yawt -D
# or
yarn add @aegenet/yawt -D
📝 Config files (./)
./.build/yawt.config.json
[{
"name": "lib",
"links": [],
"dependencies": [],
"publish": false
}, {
"name": "app",
"links": ["lib"],
"dependencies": ["lib"],
"publish": true
}]
eslint.config.cjs
const { eslintConfigurator } = require('@aegenet/yawt');
module.exports = eslintConfigurator();
prettier.config.cjs
const { prettierConfigurator } = require('@aegenet/yawt');
module.exports = prettierConfigurator();
vite.config.mjs
import { viteConfigurator } from '@aegenet/yawt';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
export default viteConfigurator({
cwd: dirname(fileURLToPath(import.meta.url)),
libName: '@sample/lib',
entryPoint: './src/index.ts',
nodeExternal: true,
});
rollup.config.dts.cjs
const { rollupDTSConfigurator } = require('@aegenet/yawt');
const { cwd } = require('node:process');
export default rollupDTSConfigurator({
cwd: cwd(),
libName: '@sample/lib',
entryPoint: './src/index.ts',
nodeExternal: true,
});
tsconfig.json
{
"extends": "./node_modules/@aegenet/yawt/tsconfig.base.json",
"exclude": [
"./node_modules",
],
"include": [
"src"
]
}
🖹 Exports
Name | Description |
---|---|
eslintConfigurator | Configuration for eslint |
prettierConfigurator | Configuration for prettier |
viteConfigurator | Configuration for vite (and vitest) |
rollupDTSConfigurator | Configuration for generate typings |
yawt | Yawt API |
CLI
# With workspace
yawt --task=build
# or without workspace
yawt --task=build --single
The selected task will be executed on all projects in the workspace.
Task | Description |
---|---|
version | Apply version to all projects. |
build | npm run build |
test | check package exports && npm run test |
lint | npm run lint |
dependencies | npm i & npm link all links |
upgrade | remove ./node_modules , package-lock.json & npm i |
publish | remove devDependencies, scripts & npm publish |
Task | Description |
---|---|
upgradeForce | remove ./node_modules , package-lock.json & npm upgrade --latest |
clean | npm run clean |
deleteNodeModules | Remove ./node_modules |
testLocal | npm run test:local |
Coverage
📝 License
The MIT License - Copyright © 2024 Alexandre Genet.