{"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,"search_vec":"'2.0.1':21 '20':35 '22':32 '3.0.0':29 'alongsid':63 'api':60 'avoid':56 'breakag':61 'code':58 'contain':14 'coupl':52 'differ':38 'drop':33 'ember':4,41,67,73 'ember-template-lint-plugin-pretti':40 'ember.js':19 'emberj':74 'file':13 'format':11,48 'hbs':5,15,49 'javascript':72 'javascript/typescript':12 'latest':24 'lint':43,55 'liter':18 'nativ':47 'node':31,34 'plugin':3,9,44,66,78 'prettier':2,8,28,45,65,75,77 'prettier-plugin':76 'prettier-plugin-ember-hbs-tag':1 'prettier-plugin-ember-template-tag':64 'releas':26 'requir':27 'stabl':25 'tag':6,16,50,69,71 'templat':17,42,54,68 'uglifi':57 'v2':37 'version':20 'without':51 'work':62","created_at":"2026-04-25T11:22:41.311214+00:00","updated_at":"2026-04-25T11:22:41.311214+00:00","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,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/ijlee2/prettier-plugin-ember-hbs-tag","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/prettier-plugin-ember-hbs-tag","openapi_spec":null,"status_page":null,"smithery":null,"categories":[],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-24","install_tag":null}}