βοΈ Config Files
By default, Poku comes with the most common usage pre-set, but you can configure it as you want.
History
| Version | Changes |
|---|---|
| vCanary | poku.config.cjs from auto-search. |
| v2.2.0 | -c short flag. |
| v2.1.0 | .js and .cjs)..json and .jsonc). |
JavaScriptβ
Create a poku.config.js in your project's root directory, for example:
- ES Modules
- CommonJS
import { defineConfig } from 'poku';
export default defineConfig({
include: ['.'], // Doesn't support glob patterns
sequential: true,
debug: false,
filter: /\.(test.|.spec)\./,
exclude: [], // regex
failFast: false,
concurrency: 0, // No limit
quiet: false,
envFile: '.env',
kill: {
port: [3000],
range: [
[3000, 3003],
[4000, 4002],
],
pid: [612],
},
deno: {
allow: ['run', 'env', 'read', 'net'],
deny: [], // Same as allow
cjs: ['.js', '.cjs'], // specific extensions
// "cjs": true // all extensions
// "cjs": false // no polyfill
},
beforeEach: () => true, // Before each test file
afterEach: () => true, // After each test file
});
const { defineConfig } = require('poku');
module.exports = defineConfig({
include: ['.'], // Doesn't support glob patterns
sequential: true,
debug: false,
filter: /\.(test.|.spec)\./,
exclude: [], // regex
failFast: false,
concurrency: 0, // No limit
quiet: false,
envFile: '.env',
kill: {
port: [3000],
range: [
[3000, 3003],
[4000, 4002],
],
pid: [612],
},
deno: {
allow: ['run', 'env', 'read', 'net'],
deny: [], // Same as allow
cjs: ['.js', '.cjs'], // specific extensions
// "cjs": true // all extensions
// "cjs": false // no polyfill
},
beforeEach: () => true, // Before each test file
afterEach: () => true, // After each test file
});
JSON and JSONCβ
Create a .pokurc.json (or .pokurc.jsonc) in your project's root directory, for example:
- JSONC
- JSON
{
"$schema": "https://poku.io/schemas/configs.json",
"include": ["."], // Doesn't support glob patterns
"sequential": true,
"debug": false,
"filter": ".test.|.spec.", // regex as string
"exclude": "", // regex as string
"failFast": false,
"concurrency": 0, // No limit
"quiet": false,
"envFile": ".env",
"kill": {
"port": [3000],
"range": [
[3000, 3003],
[4000, 4002],
],
"pid": [612],
},
"platform": "node", // "node", "bun" and "deno"
"deno": {
"allow": ["run", "env", "read", "net"],
"deny": [], // Same as allow
"cjs": [".js", ".cjs"], // specific extensions
// "cjs": true // all extensions
// "cjs": false // no polyfill
},
}
{
"$schema": "https://poku.io/schemas/configs.json",
"include": ["."],
"sequential": true,
"debug": false,
"filter": ".test.|.spec.",
"exclude": "",
"failFast": false,
"concurrency": 0,
"quiet": false,
"envFile": ".env",
"kill": {
"port": [3000],
"range": [
[3000, 3003],
[4000, 4002]
],
"pid": [612]
},
"platform": "node",
"deno": {
"allow": ["run", "env", "read", "net"],
"deny": [],
"cjs": [".js", ".cjs"]
}
}
tip
- The
$schemaproperty allows a JSON intellisense to assist you customize Poku. - All options are optional.
- See details of all the options.
note
Shares the same limitations as CLI flags.
Default Configuration Filesβ
In priority order.
poku.config.js.pokurc.json.pokurc.jsonc
note
- Using a duplicate configuration via CLI will overwrite the option in the configuration file.
- If there are multiple configuration files in the same directory, Poku will search for β and use β only one.
Custom Fileβ
npx poku --config='<file>.json'
npx poku --config='<file>.jsonc'
npx poku --config='<file>.js'
npx poku --config='<file>.cjs'
npx poku --config='<file>.mjs'
npx poku --config='<file>.ts'
npx poku --config='<file>.cts'
npx poku --config='<file>.mts'
- Short flag:
-c.