Configurations
This package also exposes a set of built-in configurations for the tools it uses. This way allow extending and overriding configurations.
These are the exposed configurations:
Configuration |
Description |
---|---|
Used to compile plugins |
|
Used to compile plugins keeping support for legacy browsers |
|
Used for identifying and reporting on patterns found in ECMAScript, JavaScript, and TypeScript code. |
|
Used for running linters on git staged files. |
|
ESLint ignoring file |
|
Used for code formatting |
|
Prettier ignoring file |
|
Requires advanced configuration |
|
Used for git hooks |
|
Requires advanced configuration |
|
Jest configuration |
babel.config.js
Default Babel configuration used to compile plugins. We encourage to use it.
const babelConfig = require('@pos-web/devkit-scripts/config/babel.config');
babel.config-legacy.js
Babel configuration used to compile plugins keeping support for legacy browsers (e.g., Chrome v49, IE11).
const babelConfig = require('@pos-web/devkit-scripts/config/babel.config-legacy');
eslint.config.js
Default ESLint configuration used for identifying and reporting on patterns found in ECMAScript, JavaScript, and TypeScript code.
// This default configuration file is using `@pos-web/eslint-config` under the hood.
const eslintConfig = require('@pos-web/devkit-scripts/config/eslint.config.js');
Extending at you .eslintrc.js or eslint.config.js:
module.exports = {
extends: ['@pos-web/eslint-config'],
};
lint-staged.config.js
Default lint-staged configuration used for running linters on git staged files.
const lintStagedConfig = require('@pos-web/devkit-scripts/config/lint-staged.config.js');
eslintignore
Default ESLint ignoring file.
It is not a javascript file, so it is only used as a built-in fallback in case there is no other custom configuration. It can not be imported for extending it, just overridden by a custom configuration.
prettier.config.js
Default Prettier configuration used for code formatting.
const prettierConfig = require('@pos-web/devkit-scripts/config/prettier.config');
prettierignore
Default Prettier ignoring file.
It is not a javascript file, so it is only used as a built-in fallback in case there is no other custom configuration. It can not be imported for extending it, just overridden by a custom configuration.
rollup.config.js
Default Rollup configuration. It requires advanced configuration. So we discourage to use it. But it can be useful if you'd like to extend it.
const rollupConfig = require('@pos-web/devkit-scripts/config/rollup.config');
husky.config.js
Default Husky configuration used for git hooks.
webpack.config.js
Default Webpack configuration. It requires advanced configuration. So we discourage to use it. But it can be useful if you'd like to extend it (using webpack-merge is recommended).
const webpackConfig = require('@pos-web/devkit-scripts/config/webpack.config');
jest.config.js
Default Jest configuration.
const jestConfig = require('@pos-web/devkit-scripts/config/jest.config');
If you need to extend the configuration, create a jest.config.js in the root of your project and add your custom configuration:
const jestConfig = require('@pos-web/devkit-scripts/config/jest.config');
module.exports = {
...jestConfig,
setupFiles: [...jestConfig.setupFiles, './jest.setup.js'],
resolver: './custom-resolver.js',
// add more custom configurations
};
Debugging with Visual Studio Code
To automatically launch and attach to a process running your tests, use the following configuration in .vscode/launch.json:
{
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Jest run all tests",
"program": "${workspaceRoot}/node_modules/.bin/devkit-scripts",
"args": ["test", "--runInBand"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"windows": {
"program": "${workspaceRoot}/node_modules/@pos-web/devkit-scripts/bin/devkit-scripts.js"
}
},
{
"type": "node",
"request": "launch",
"name": "Jest Current File",
"program": "${workspaceRoot}/node_modules/.bin/devkit-scripts",
"args": ["test", "${relativeFile}"],
"console": "integratedTerminal",
"internalConsoleOptions": "neverOpen",
"windows": {
"program": "${workspaceRoot}/node_modules/@pos-web/devkit-scripts/bin/devkit-scripts.js"
}
}
]
}
More information on Jest debugging can be found here.