laravel prettier blade tailwindcss 적용하기

Updated on

laravel 프로젝트에서 blade prettier tailwindcss 를 적용해야할때가 있다.

prettier 를 nativescript 랑 frontend 프로젝트에서 eslint랑 같이 사용해보게 되었고, 사용하면서 정말 좋다고 생각이 들었고, reactnative 에서도 필수적인 요소라고 생각된다.

그래서 설명하자면

패키지 설치
npm install -D prettier prettier-plugin-blade prettier-plugin-tailwindcss
.prettierrc 파일 생성
{
    "printWidth": 240,
    "singleQuote": true,
    "trailingComma": "all",
    "tabWidth": 4,
    "semi": true,
    "useTabs": false,
    "bracketSpacing": true,
    "arrowParens": "always",
    "endOfLine": "auto",
    "plugins": [
        "prettier-plugin-blade",
        "prettier-plugin-tailwindcss"
    ],
    "overrides": [
        {
            "files": [
                "*.blade.php"
            ],
            "options": {
                "parser": "blade"
            }
        }
    ]
}
phpstorm 에서 Prettier 설정

사진처럼 Prettier 검색 후 blade.php 를 추가한다.

**/*.{js,ts,jsx,tsx,cjs,cts,mjs,mts,vue,astro,blade.php}

결과

간단하게 Ctrl + Alt + Shift + L 로 Reformat 할 경우에 Prettier 가 자동으로 처리된다.

<div>
    <div class="font-bold text-2xl">hello world</div>
    <div class="font-semibold text-xl text-green-500">tailwindcss v4</div>
</div>

<div>
    <div class="text-2xl font-bold">hello world</div>
    <div class="text-xl font-semibold text-green-500">tailwindcss v4</div>
</div>

이렇게 *.blade.php 의 tailwindcss class가 재정렬된다.

이 부분이 생각보다 중요하지 않다 생각할 수 있는데, 디자인과 개발을 하다보면 이 순서는 작업 속도에 매우 중요한 요소로 작용되는 것 같다.

앞으로 prettier, eslint 는 꼭 해당 프로젝트에서 필수적으로 사용하는 것이 좋을 것 같다.

참고로 이 prettier 방식은 vscode 에서 안됨. ㅋㅋ 어이 ㅡ..ㅡ;;

VSCODE 에서도 사용할 수 있게 하기

https://github.com/shufo/prettier-plugin-blade

위 플러그인을 설치해줘야 한다. (단일 설치할 경우에 es module 에러가 발생해서 적용이 되는지 안되는지 잘 모르겠음)

npm install -D @shufo/prettier-plugin-blade
{
    "plugins": [
        "prettier-plugin-blade",
        "prettier-plugin-tailwindcss",
        "@shufo/prettier-plugin-blade"
    ],
    "overrides": [
        {
            "files": [
                "*.blade.php"
            ],
            "options": {
                "parser": "blade"
            }
        }
    ],
    "printWidth": 240,
    "tabWidth": 4,
    "wrapAttributes": "force",
    "wrapAttributesMinAttrs": 2,
    "sortTailwindcssClasses": true,
    "sortHtmlAttributes": "none",
    "noPhpSyntaxCheck": false,
    "indentInnerHtml": true,
    "extraLiners": "",
    "trailingCommaPHP": true,
    "componentPrefix": "x-,livewire:"
}

https://marketplace.visualstudio.com/items?itemName=shufo.vscode-blade-formatter

vscode 에서는 위 포메터를 설치해준다.

settings.json

// formatter
"[blade]":{
	"editor.defaultFormatter": "shufo.vscode-blade-formatter"
},
"bladeFormatter.format.sortTailwindcssClasses": true,
"bladeFormatter.format.wrapLineLength": 240,
"bladeFormatter.format.wrapAttributes": "force",
"bladeFormatter.format.indentInnerHtml": true,

이렇게 설정을 해주면 된다.

그러면 phpstorm 에서도 vscode 에서도 동일한 prettier를 적용할 수 있게 된다.