NGINX configuration plugin for Prettier
npm install prettier-plugin-nginx
This TypeScript module is a plugin for Prettier that
beautifies
NGINX configuration files.
It is written in TypeScript, and depends only
on Prettier.
Install Prettier, and then install
this plugin from npm:
``shell`
npm install -g prettier-plugin-nginx
This plugin is configured to run on files with the extension .nginx or.nginxconf. For plugin-level configuration, see
Configuration.
Modules that extend NGINX to include other languages within configuration files,
such as lua-nginx-module, will
not work with this formatter.
A messy file like this...
``
server {server definition
listen 443 ssl; listen [::]:443 ssl;
server_name example.com;
location / { proxy_pass http://proxy; proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1000; }end server definition
}
...is transformed to this:
`nginx
server {
# server definition
listen 443 ssl;
listen [::]:443 ssl;
server_name example.com;
location / {
proxy_pass http://proxy;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_read_timeout 1000;
}
# end server definition
}
`
This plugin, like Prettier, is
opinionated. The following
options are available, with defaults modelled after the configuration examples
in the NGINX docs.
| API Option | CLI Option | Default | Description |
| -------------------- | ----------------------- | ------- | ---------------------------------------------------------------------------------- |
| printWidth | --print-width | | Same option as in Prettier |tabWidth
| | --tab-width | | Same option as in Prettier |useTabs
| | --use-tabs | | Same option as in Prettier |alignDirectives
| | --align-directives | true | Align directive parameters within a block to the same column. |alignUniversally
| | --align-universally | false | Align all directive parameters within a file to the same column. |wrapParameters
| | --wrap-parameters | true | Wrap parameters to new lines to fit print width. |continuationIndent
| | --continuation-indent | 2` | Additional indentation for wrapped lines. |
Bug reports and pull requests are welcome on
GitHub.
The package is available as open source under the terms of the
MIT License.