nx-pm2-plugin
v1.0.5
Published
The `nx-pm2-plugin` serves as a high-functionality add-on for an [Nx](https://nx.dev/) monorepo, designed to facilitate the execution of any Node.js applications utilizing the [pm2](https://pm2.io/) process manager. This plugin offers seamless integration
Downloads
1,725
Maintainers
Readme
Nx-PM2 Plugin
The nx-pm2-plugin
serves as a high-functionality add-on for an Nx monorepo, designed to facilitate the execution of any Node.js applications utilizing the pm2 process manager. This plugin offers seamless integration, optimizing the management and maintenance of your application's runtime processes.
Installation
Use the package manager npm to install nx-pm2-plugin
.
npm install nx-pm2-plugin
Usage
create a task in nx (example):
"pm2": {
"executor": "nx-pm2-plugin:pm2-executor",
"options": {
"command": "nx-pm2-example:serve:production",
"name": "example"
}
}
execute task
npx nx run nx-pm2-example:pm2
Documentation
Executor options
(Shema):
| Property | Type | Description | | --- | --- | --- | | name | string | The name of the application | | instances | number | Number of instances to start, if set, automatically in cluster mode | | max_memory_restart | string | Max memory amount after which app needs to restart | | log_date_format | string | Date format for logs | | merge_logs | boolean | Whether to merge logs | | autorestart | boolean | Whether to auto-restart the application when it crashes or ends | | log_file | string | Path to the file where both out and error logs will be written | | out_file | string | Path to the file where application stdout will be written | | error_file | string | Path to the file where application stderr will be written | | pid_file | string | Path to the file where application pid will be written | | command | string | Nx project command to be executed by PM2 |
Picking up pm2 configuration from env:
In the following example the INSTANCE_NAME & NO_OF_INSTANCES will be picked up from process.env
"pm2": {
"executor": "nx-pm2-plugin:pm2-executor",
"dependsOn": ["build"],
"options": {
"command": "nx-pm2-example:serve:production",
"instances": "${NO_OF_INSTANCES}",
"name": "${INSTANCE_NAME}"
}
}
Mandatory options:
The following executor options are mandatory:
| Property | Type | Description | | --- | --- | --- | | command | string | Nx project command to be executed by PM2 | | name | string | The name of the PM2 instance |
Test
To run tests, use the following command:
npm test
License
Contact
If you have any questions or need further clarification, feel free to reach out.
Github: Jonathan Dsouza
Email: [email protected]
Changelog
See the CHANGELOG.md file for details.