{"id":20357,"library":"prettier-plugin-ember-hbs-tag","title":"prettier-plugin-ember-hbs-tag","description":"A Prettier plugin to format JavaScript/TypeScript files containing `hbs` tagged template literals (Ember.js). Version 2.0.1 is the latest stable release, requiring Prettier ^3.0.0 and Node 22+ (dropped Node 20 in v2). Differs from `ember-template-lint-plugin-prettier` by natively formatting `hbs` tags without coupling to template lint, avoiding uglified code and API breakage. Works alongside `prettier-plugin-ember-template-tag` for `<template>` tags.","status":"active","version":"2.0.1","language":"javascript","source_language":"en","source_url":"https://github.com/ijlee2/prettier-plugin-ember-hbs-tag","tags":["javascript","ember","emberjs","prettier","prettier-plugin"],"install":[{"cmd":"npm install prettier-plugin-ember-hbs-tag","lang":"bash","label":"npm"},{"cmd":"yarn add prettier-plugin-ember-hbs-tag","lang":"bash","label":"yarn"},{"cmd":"pnpm add prettier-plugin-ember-hbs-tag","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"peer dependency required to operate as a Prettier plugin","package":"prettier","optional":false}],"imports":[{"note":"This is a Prettier plugin, not a module you import directly. Configure it via prettier.config.mjs or .prettierrc.","wrong":"import plugin from 'prettier-plugin-ember-hbs-tag'","symbol":"default","correct":"Add 'prettier-plugin-ember-hbs-tag' to plugins array in prettier config"},{"note":"Use 'ember-hbs-tag' for files with hbs tags; 'ember-template-tag' is from prettier-plugin-ember-template-tag.","wrong":"parser: 'ember-template-tag'","symbol":"parser (configuration)","correct":"parser: 'ember-hbs-tag' in prettier overrides"},{"note":"Prettier configs typically use string references; direct require may not work as expected.","wrong":"const plugin = require('prettier-plugin-ember-hbs-tag')","symbol":"require (CommonJS)","correct":"plugins: ['prettier-plugin-ember-hbs-tag']"}],"quickstart":{"code":"// prettier.config.mjs\nexport default {\n  plugins: [\n    'prettier-plugin-ember-hbs-tag',\n    'prettier-plugin-ember-template-tag', // optional, for <template>\n  ],\n  overrides: [\n    {\n      files: ['tests/**/*-test.{js,ts}'],\n      options: {\n        parser: 'ember-hbs-tag',\n        singleQuote: true,\n        templateSingleQuote: false,\n      },\n    },\n  ],\n};\n\n// Run: prettier --write tests/\"*\"","lang":"javascript","description":"Configures Prettier to format hbs tags in test files, using the ember-hbs-tag parser."},"warnings":[{"fix":"Use Node 22 or later. See https://github.com/ijlee2/prettier-plugin-ember-hbs-tag/releases/tag/v2.0.0","message":"Dropped support for Node 20","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Upgrade Prettier to v3+. https://prettier.io/docs/en/install.html","message":"Requires Prettier ^3.0.0","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"Add overrides with parser: 'ember-hbs-tag' for relevant file patterns (e.g., tests/**/*-test.{js,ts}).","message":"Must set parser to 'ember-hbs-tag' in overrides for files that contain hbs tags; Prettier's default parser 'babel' will not format them.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use both plugins as needed; ensure correct parser per file.","message":"Do not confuse with prettier-plugin-ember-template-tag; each formats different tag types (hbs vs <template>).","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Remove 'ember-template-lint-plugin-prettier' and update .template-lintrc.cjs as shown in README.","message":"Replaces ember-template-lint-plugin-prettier; remove that plugin from package.json and template-lint config.","severity":"deprecated","affected_versions":">=1.0.0"}],"env_vars":null,"last_verified":"2026-04-25T00:00:00.000Z","next_check":"2026-07-24T00:00:00.000Z","problems":[{"fix":"npm install --save-dev prettier-plugin-ember-hbs-tag","cause":"Plugin not installed or missing from package.json.","error":"Error: Could not resolve 'prettier-plugin-ember-hbs-tag'"},{"fix":"Upgrade Prettier to ^3.0.0","cause":"Prettier version <3.0.0 does not support plugin API used.","error":"TypeError: Cannot read properties of undefined (reading 'parse')"},{"fix":"Ensure overrides section includes parser: 'ember-hbs-tag' for appropriate files.","cause":"Incorrect parser value or missing overrides.","error":"Expected a string but received undefined in plugin option"},{"fix":"Upgrade Node to 22 or later.","cause":"Using Node 20 with v2.0.0+.","error":"Error: Node.js version 20.x is not supported"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}