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:
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:
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.