Skip to main content
NOTICE

Configure Prettier

Prettier is a code formatter that helps ensure consistent code style and formatting across your entire project. It can automatically format code in various languages, including JavaScript, HTML, CSS, and more.

Ontario.ca Frontend provides an integrated Prettier experience out of the box. Each time you create a new Ontario.ca Frontend project, you will see a prompt like this:

Terminal
Add and configure Prettier for opinionated code formatting?Yes❯ No

When you select "Yes," Ontario.ca Frontend will automatically install prettier and @ongov/prettier-config-ontario-frontend as dependencies in your project and create prettier.config.js and .prettierignore file in the root of your project that includes the default configuration for Ontario.ca Frontend projects.

You can run npm run format every time you want to run Prettier to format your project's codebase.

Add Prettier to an existing project

If you did not choose to install Prettier during the project creation process, you can add it using the ontario-add-package CLI command.

From your terminal, run the ontario-add-package command from your project's root directory:

Terminal
npx @ongov/ontario-frontend-cli ontario-add-package

Then select @ongov/prettier-config-ontario-frontend from the list of packages:

Terminal
? Select packages to add: (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed) ◯ @ongov/eslint-config-ontario-frontend❯◉ @ongov/prettier-config-ontario-frontend

This will install all related packages and configuration files.

Finally, add prettier --write as a script to package.json:

package.json
{  "scripts": {    "format": "prettier --write"  }}

You can now run npm run format from your terminal to format the files in your project.

Remove Prettier from an existing project

If you wish to remove Prettier from your project, you can do so using the ontario-remove-package CLI command.

From your terminal, run the ontario-remove-package command from your project's root directory:

Terminal
npx @ongov/ontario-frontend-cli ontario-remove-package

Then select @ongov/prettier-config-ontario-frontend from the list of packages:

Terminal
? Select packages to remove: (Press <space> to select, <a> to toggle all, <i> to invert selection, and <enter> to proceed) ◯ @ongov/eslint-config-ontario-frontend❯◉ @ongov/prettier-config-ontario-frontend

This will uninstall all related packages and configuration files.

Customize Prettier

The default configuration (@ongov/prettier-config-ontario-frontend) includes everything you need to format the standard files within an Ontario.ca Frontend project. However, there may be times where you want to extend, override, or disable any default rules. If you need to do that, import the @ongov/prettier-config-ontario-frontend configuration into prettier.config.js and export the modifications:

prettier.config.js
module.exports = {  ...require('@ongov/prettier-config-ontario-frontend'),  printWidth: 120,};

Ignoring code

You can use .prettierignore to ignore certain files and folders completely.

Create a .prettierignore file in the root of your project. .prettierignore uses gitignore syntax.

.prettierignore
# Ignore artifactsnode_modulesdist# Ignore vendor assetssrc/assets/vendor/*# Ignore .njk files*.njk