@aegenet/yawt
v0.10.0
Published
Yawt - Yet Another Workspace Toolkit - The purpose of this package is to provide a set of tools to help you manage your workspace.
Downloads
326
Maintainers
Readme
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.mjs
(ESM)
import { eslintConfigurator } from '@aegenet/yawt';
export default eslintConfigurator();
- Or with CommonJS
eslint.config.cjs
const { eslintConfigurator } = require('@aegenet/yawt');
module.exports = eslintConfigurator();
prettier.config.mjs
import { prettierConfigurator } from '@aegenet/yawt';
export default prettierConfigurator();
- Or with CommonJS
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.mjs
import { rollupDTSConfigurator } from '@aegenet/yawt';
import { dirname } from 'node:path';
import { fileURLToPath } from 'node:url';
export default rollupDTSConfigurator({
cwd: dirname(fileURLToPath(import.meta.url)),
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, ./dist/**/*.map & npm publish
(you can keep the .map with --param=keep-map
or/and (re)generate the package-lock.json
with --param=package-lock
) |
| Task | Description |
| --- | --- |
| upgradeForce
| remove ./node_modules
, package-lock.json
& npm upgrade --latest
|
| clean
| npm run clean
|
| deleteNodeModules
| Remove ./node_modules
|
| regenPackageLock
| (Re)Generate the package-lock.json
(even if it's a npm workspace) |
| forEach
| The purpose of this task is to run a script for each project. Usage: yawt --task=forEach --param=cspell
. |
| forEachRaw
| The purpose of this task is to run a command for each project. Usage: yawt --task=forEachRaw --param="echo hello"
. |
Coverage
📝 License
The MIT License - Copyright © 2024 Alexandre Genet.