Tan Phat Media

Prettier Config Generator

Chỉnh từng tùy chọn và xem ngay một đoạn mã mẫu được định dạng lại theo đúng lựa chọn của bạn

Chiều rộng và thụt lề
80 cột

Mốc để Prettier quyết định bẻ dòng, không phải giới hạn cứng. Mặc định là 80, nhiều đội frontend nới lên 100 hoặc 120 vì thẻ JSX kèm lớp CSS rất dài.

2 cột

Số cột cho mỗi cấp thụt lề. Khi useTabs bật, giá trị này chỉ dùng để tính chiều rộng dòng chứ không đổi ký tự thụt lề.

Dùng ký tự tab thay cho dấu cách. Ưu điểm là mỗi người tự chọn độ rộng hiển thị, nên đây là lựa chọn tốt cho khả năng truy cập.

Dấu câu và nháy

Thêm dấu chấm phẩy cuối câu lệnh. Bỏ đi thì mã gọn hơn nhưng vài dòng bắt đầu bằng dấu ngoặc phải thêm chấm phẩy dẫn ở đầu.

Dùng nháy đơn cho chuỗi trong JavaScript. Prettier vẫn tự đổi sang nháy kép khi chuỗi có chứa nháy đơn để khỏi phải thoát ký tự.

Dùng nháy đơn cho thuộc tính trong JSX. Tùy chọn riêng biệt vì quy ước HTML lâu nay là nháy kép, nhiều đội để nháy đơn cho JS và nháy kép cho JSX.

Quyết định khóa của object có được đặt trong nháy hay không. as-needed chỉ giữ nháy ở khóa bắt buộc, consistent đặt nháy cho tất cả khi có một khóa cần, preserve giữ nguyên như bạn viết.

Dấu phẩy sau phần tử cuối khi khối bị bẻ dòng. Đặt all giúp bản vá gọn hơn vì thêm một dòng không làm dòng trước đó bị đánh dấu là đã sửa.

Ngoặc, hàm mũi tên và JSX

Thêm dấu cách bên trong cặp ngoặc nhọn của object và của câu lệnh nhập. Thuần túy thẩm mỹ, chọn một kiểu rồi giữ nguyên cho cả dự án.

Đặt dấu lớn hơn kết thúc thẻ mở JSX ngay cuối dòng thuộc tính cuối cùng thay vì cho xuống dòng riêng. Tiết kiệm dòng nhưng khó nhìn ranh giới thẻ hơn.

Mỗi thuộc tính JSX một dòng, kể cả khi cả thẻ vẫn nằm gọn trong printWidth. Bản vá dễ đọc hơn nhưng tệp dài ra đáng kể.

Hàm mũi tên một tham số có giữ cặp ngoặc hay không. Để always thì khi thêm tham số thứ hai hoặc thêm chú thích kiểu, bản vá chỉ đổi đúng phần cần đổi.

Ký tự xuống dòng ghi vào tệp. Để lf cho mọi hệ điều hành và đặt kèm quy tắc trong tệp .gitattributes, nếu không toàn bộ tệp sẽ hiện là đã sửa khi người dùng Windows lưu lại.

Có định dạng cả phần CSS, GraphQL hay HTML nằm trong chuỗi mẫu hay không. Đặt off khi chuỗi mẫu của bạn chứa nội dung mà Prettier hiểu nhầm rồi làm hỏng.

Xem trước trực tiếp

Mã gốc chưa định dạng

import {useState} from 'react'
const config = {"retries":3,timeout:1000,'cache-key':'user-list'}
export function UserCard({user,onSelect}){
const [open,setOpen]=useState(false)
const label=open?'Thu gọn':'Xem chi tiết'
const handleClick=event=>onSelect(user.id,event)
const detail=fetchUserDetail(user.id,{includeOrders:true,locale:'vi-VN'})
const style=css`color:red;   background:blue`
return <button type='button' className='user-card' aria-expanded={open} onClick={handleClick}>{user.name} — {label}</button>
}

Sau khi định dạng theo lựa chọn hiện tại

import { useState } from "react";

const config = { retries: 3, timeout: 1000, "cache-key": "user-list" };

export function UserCard({ user, onSelect }) {
  const [open, setOpen] = useState(false);
  const label = open ? "Thu gọn" : "Xem chi tiết";
  const handleClick = (event) => onSelect(user.id, event);
  const detail = fetchUserDetail(user.id, {
    includeOrders: true,
    locale: "vi-VN",
  });
  const style = css`
    color: red;
    background: blue;
  `;

  return (
    <button
      type="button"
      className="user-card"
      aria-expanded={open}
      onClick={handleClick}
    >
      {user.name} — {label}
    </button>
  );
}

Khung xem trước dựng lại đoạn mã theo đúng mười bốn tùy chọn bên trái. Riêng endOfLine không nhìn thấy được vì ký tự xuống dòng vô hình, nhưng nó vẫn được ghi vào tệp cấu hình. Đang có 0 tùy chọn khác giá trị mặc định của Prettier.

.prettierrc
{
  "printWidth": 80,
  "tabWidth": 2,
  "useTabs": false,
  "semi": true,
  "singleQuote": false,
  "quoteProps": "as-needed",
  "jsxSingleQuote": false,
  "trailingComma": "all",
  "bracketSpacing": true,
  "bracketSameLine": false,
  "arrowParens": "always",
  "endOfLine": "lf",
  "embeddedLanguageFormatting": "auto",
  "singleAttributePerLine": false
}

Đặt ở thư mục gốc dự án. Tên .prettierrc dùng cú pháp JSON, nếu cần viết chú thích thì đổi sang .prettierrc.json5 hoặc prettier.config.js.

Khối overrides theo loại tệp

*.md

Văn bản dài không nên bị bẻ dòng theo cùng một cột với mã. Đặt riêng printWidth và cách xuống dòng cho đoạn văn.

*.json

JSON không có dấu chấm phẩy và không có nháy đơn, nhưng vẫn nên nới rộng cột để mảng dữ liệu dài dễ đọc.

*.{yml,yaml}

YAML rất nhạy với thụt lề, luôn dùng hai dấu cách và không bao giờ dùng ký tự tab.

*.{jsx,tsx}

Nhiều đội nới rộng cột riêng cho tệp giao diện vì thẻ JSX kèm lớp CSS thường rất dài.

legacy/**/*.js

Khi phải sống chung với mã cũ chưa định dạng lại, khoanh vùng riêng để bản vá không phình ra hàng nghìn dòng.

.prettierignore
# Thư mục sinh tự động, không cần định dạng
node_modules
dist
build
coverage
.next
out

# Tệp khóa phiên bản do trình quản lý gói ghi ra
package-lock.json
pnpm-lock.yaml
yarn.lock

# Tệp đã nén hoặc tệp sinh từ công cụ khác
*.min.js
*.min.css
public/sitemap*.xml

# Ảnh chụp kết quả kiểm thử, định dạng lại là hỏng phép so sánh
**/__snapshots__/**

Cú pháp giống .gitignore. Bỏ qua tệp sinh tự động và tệp khóa phiên bản, vì định dạng lại những tệp đó chỉ tạo ra bản vá rác.

Prettier lo hình thức, ESLint lo lỗi, tsconfig lo kiểu

Prettier chỉ trả lời một câu hỏi: mã trông thế nào. Nó không biết mã của bạn đúng hay sai, không kiểm tra kiểu, không phát hiện lỗi logic. Đổi lại, nó chấm dứt hoàn toàn tranh luận về hình thức trong lúc duyệt mã.

  • ESLint Config Generatorlo lỗi logic và quy ước. Để hai công cụ không giẫm chân nhau, cài eslint-config-prettier rồi đặt nó ở vị trí cuối cùng trong cấu hình ESLint, khi đó mọi quy tắc định dạng bên ESLint bị tắt và chỉ Prettier quyết cách trình bày.
  • tsconfig.json Generatorlo phần trình biên dịch hiểu mã thế nào. Prettier không đọc tsconfig, nó chỉ nhìn cú pháp, nên hai tệp này hoàn toàn độc lập với nhau.
  • package.json Generatornơi khai lệnh format trong trường scripts và khai gói prettier vào phần phụ thuộc phát triển.
  • JSON Schema Generatordùng khi bạn cần kiểm tra cấu trúc của một tệp JSON. Prettier chỉ sắp lại hình thức tệp JSON chứ không kiểm tra nội dung bên trong có hợp lệ hay không.

Hợp tác ngay với Tấn Phát Digital

Chúng tôi không chỉ thiết kế website, mà còn giúp doanh nghiệp xây dựng thương hiệu số mạnh mẽ. Cung cấp dịch vụ thiết kế website trọn gói từ thiết kế đến tối ưu SEO. Hãy liên hệ ngay với Tấn Phát Digital để cùng tạo nên những giải pháp công nghệ đột phá, hiệu quả và bền vững cho doanh nghiệp của bạn tại Hồ Chí Minh.

Tạo .prettierrc và xem trước ngay đoạn mã được định dạng lại theo lựa chọn của bạn

Công cụ bày đủ mười bốn tùy chọn của Prettier, từ printWidth và tabWidth cho tới singleAttributePerLine, kèm khung xem trước dựng lại một đoạn mã mẫu theo đúng lựa chọn hiện tại nên bạn thấy khác biệt ngay thay vì phải đoán. Kèm theo là khối overrides cho từng loại tệp và một mẫu .prettierignore dùng được ngay.

Tính năng nổi bật

  • Đủ mười bốn tùy chọn của Prettier, mỗi tùy chọn có một dòng giải thích hệ quả thực tế chứ không chép lại tài liệu
  • Khung xem trước hai cột đặt cạnh nhau: mã gốc viết lộn xộn và mã sau khi định dạng theo lựa chọn hiện tại
  • Đoạn mã mẫu được chọn để mọi tùy chọn đều có chỗ thể hiện, kể cả quoteProps và embeddedLanguageFormatting
  • Thanh trượt cho printWidth và tabWidth, kéo tới đâu khung xem trước bẻ dòng lại tới đó
  • Năm khối overrides dựng sẵn cho Markdown, JSON, YAML, tệp giao diện và thư mục mã cũ
  • Mẫu .prettierignore đầy đủ, đã loại sẵn tệp khóa phiên bản và ảnh chụp kết quả kiểm thử
  • Đếm số tùy chọn đang khác giá trị mặc định để bạn biết cấu hình của mình lệch chuẩn bao nhiêu
  • Chạy hoàn toàn trong trình duyệt, có nút chép riêng cho tệp cấu hình và cho tệp bỏ qua

Vì sao nên xem trước thay vì chỉnh rồi chạy thử

Cách làm thông thường là sửa một dòng trong .prettierrc, chạy lệnh định dạng lên cả dự án, mở tệp ra xem, rồi lại sửa tiếp. Vòng lặp đó tốn thời gian và tệ hơn là nó tạo ra những bản vá khổng lồ chạm vào hàng nghìn dòng mà bạn phải hoàn tác. Với một số tùy chọn thì đọc tên là hiểu, chẳng hạn semi hay singleQuote. Nhưng có những tùy chọn mà chỉ nhìn kết quả mới quyết định được: quoteProps có ba giá trị và khác biệt chỉ lộ ra khi object có một khóa chứa dấu gạch ngang; bracketSameLine chỉ đổi đúng một ký tự nhưng đổi hẳn cảm giác khi đọc một khối JSX dài; singleAttributePerLine làm tệp dài thêm bao nhiêu thì phải nhìn mới ước lượng được; còn printWidth thì tác động dây chuyền tới mọi chỗ bẻ dòng. Khung xem trước ở đây dựng lại đoạn mã theo đúng lựa chọn hiện tại, nên bạn chốt được cả bộ cấu hình trước khi chạy lệnh định dạng lần đầu. Điều đó quan trọng vì lần chạy đầu tiên trên một dự án đang có mã sẽ tạo ra một bản vá rất lớn, và bạn chỉ muốn làm việc đó đúng một lần.

Lợi ích khi sử dụng

  • Thấy ngay khác biệt của từng tùy chọn thay vì chạy thử rồi hoàn tác
  • Chốt được cả bộ cấu hình trước lần chạy định dạng đầu tiên trên dự án đang có mã
  • Có sẵn khối overrides cho Markdown và YAML, hai loại tệp hay bị định dạng hỏng
  • Mẫu .prettierignore loại sẵn tệp khóa phiên bản và ảnh chụp kết quả kiểm thử
  • Biết cách để Prettier và ESLint không sửa ngược nhau ở mỗi lần lưu tệp

Cách tạo tệp .prettierrc bằng công cụ này

  1. 1Kéo thanh trượt printWidth tới mức đội bạn thấy dễ đọc, khung xem trước bên phải bẻ dòng lại ngay theo mốc mới.
  2. 2Chọn kiểu dấu câu và nháy: có chấm phẩy hay không, nháy đơn hay nháy kép cho JavaScript và cho JSX, cách xử lý khóa của object.
  3. 3Quyết định nhóm tùy chọn JSX gồm bracketSameLine và singleAttributePerLine, so hai phương án ngay trên khung xem trước.
  4. 4Bật các khối overrides cần thiết nếu dự án có tệp Markdown, YAML hay thư mục mã cũ cần đối xử khác.
  5. 5Chép nội dung .prettierrc vào thư mục gốc dự án, chép luôn mẫu .prettierignore, rồi chạy lệnh định dạng toàn bộ trong một lần gộp mã riêng.

printWidth không phải giới hạn cứng, nó là mốc để cân nhắc bẻ dòng

Hiểu nhầm phổ biến nhất về Prettier là coi printWidth như giới hạn tuyệt đối, kiểu như quy tắc tám mươi cột của các trình soạn thảo đời cũ. Thực tế Prettier hoạt động theo cách khác hẳn: nó phân tích mã thành một cây, rồi với mỗi nhóm nó thử in ra trên một dòng, nếu vượt quá printWidth thì bẻ nhóm đó ra thành nhiều dòng, và lặp lại việc đó cho các nhóm con. Vì vậy có những dòng vẫn dài hơn mốc bạn đặt, điển hình là một chuỗi ký tự dài hay một đường dẫn nhập dài, đơn giản vì không có chỗ nào để bẻ. Hệ quả thực tế của việc chọn mốc là nó tác động dây chuyền: hạ printWidth từ 100 xuống 80 không chỉ làm vài dòng ngắn lại mà làm hàng loạt lời gọi hàm và thẻ JSX chuyển từ dạng một dòng sang dạng nhiều dòng, khiến tệp dài thêm đáng kể. Mặc định của Prettier là 80, con số kế thừa từ thời màn hình đầu cuối. Nhiều đội frontend chọn 100 hoặc 120 vì thẻ JSX kèm chuỗi lớp CSS rất dài, để 80 thì gần như thẻ nào cũng bị bẻ. Điều quan trọng hơn con số là cả đội dùng chung một con số, vì mỗi lần đổi mốc là một lần cả kho mã bị định dạng lại.

Cách để Prettier và ESLint không sửa ngược nhau

Đây là tình huống rất hay gặp: bạn lưu tệp, Prettier viết lại cách xuống dòng theo bộ luật của nó, ngay sau đó ESLint gạch đỏ đúng dòng vừa viết lại và đề nghị sửa theo hướng khác. Nguyên nhân là cả hai công cụ đều có ý kiến về hình thức mã, mà ý kiến của chúng không giống nhau. Cách phân vai đúng rất đơn giản và cần được cả đội thống nhất: Prettier là công cụ duy nhất được quyền quyết định mã trông thế nào, còn ESLint chỉ giữ phần lỗi logic và quy ước, tức những chuyện như gọi hook sai chỗ hay thiếu phụ thuộc trong useEffect. Để thực thi, hãy cài gói eslint-config-prettier và đặt nó ở vị trí cuối cùng trong mảng flat config hoặc cuối trường extends của định dạng cũ. Gói này không thêm quy tắc nào, nó chỉ tắt toàn bộ quy tắc định dạng của ESLint. Vị trí cuối là bắt buộc vì trong ESLint thì cấu hình đứng sau ghi đè cấu hình đứng trước. Có một cách thứ hai là chạy Prettier như một quy tắc của ESLint qua gói eslint-plugin-prettier, khi đó mọi khác biệt định dạng hiện thành lỗi đỏ; cách này gọn ở chỗ chỉ cần một lệnh nhưng làm lint chậm hơn và làm nhiễu danh sách lỗi thật, nên phần lớn đội chọn cách thứ nhất rồi chạy Prettier riêng ở bước lưu tệp.

Ba nhóm tùy chọn ảnh hưởng tới bản vá nhiều hơn bạn nghĩ

Có ba tùy chọn tuy nhỏ nhưng ảnh hưởng trực tiếp tới chất lượng bản vá khi duyệt mã. Thứ nhất là trailingComma. Khi đặt giá trị all, mọi khối bị bẻ dòng đều có dấu phẩy sau phần tử cuối, nên thêm một phần tử mới chỉ tạo ra một dòng thêm vào; nếu để none thì dòng cuối cũ phải sửa để thêm dấu phẩy, và bản vá hiện thành một dòng bị xóa cùng hai dòng thêm mới, khiến lịch sử thay đổi của dòng đó bị gán nhầm cho người thêm phần tử mới. Thứ hai là arrowParens. Để always thì hàm mũi tên một tham số vẫn giữ cặp ngoặc, nên khi bạn thêm chú thích kiểu hoặc thêm tham số thứ hai, bản vá chỉ chạm vào phần thật sự đổi; để avoid thì mã ngắn hơn vài ký tự nhưng mỗi lần thêm tham số là phải viết lại cả cặp ngoặc. Thứ ba là singleAttributePerLine. Bật lên thì mỗi thuộc tính JSX một dòng, tệp dài hơn hẳn nhưng đổi một thuộc tính chỉ hiện đúng một dòng thay đổi thay vì cả thẻ. Ba lựa chọn này không có đáp án đúng tuyệt đối, nhưng nếu đội bạn duyệt mã kỹ thì cả ba nên nghiêng về phía tạo bản vá gọn.

Khối overrides và tệp .prettierignore: hai chỗ hay bị bỏ quên

Một tệp .prettierrc phẳng áp cùng bộ luật cho mọi loại tệp, và điều đó gây rắc rối ngay khi dự án có nhiều loại tệp. Tệp Markdown chứa văn xuôi chứ không phải mã, nên mốc bẻ dòng của mã áp lên đoạn văn sẽ cho ra kết quả khó đọc, và tùy chọn proseWrap mới là thứ quyết định đoạn văn có bị bẻ hay không. Tệp YAML thì cực kỳ nhạy với thụt lề và tuyệt đối không được dùng ký tự tab, nên nếu dự án của bạn đặt useTabs thì phải có khối overrides ép YAML về dấu cách, nếu không mọi tệp cấu hình quy trình tích hợp sẽ hỏng. Khối overrides trong .prettierrc nhận một mảng, mỗi phần tử gồm mẫu đường dẫn ở trường files và các tùy chọn ghi đè ở trường options, và phần tử đứng sau thắng khi có nhiều mẫu cùng khớp. Song song với đó là tệp .prettierignore dùng cú pháp giống .gitignore. Những thứ bắt buộc phải liệt kê trong đó là thư mục sinh tự động, tệp khóa phiên bản của trình quản lý gói, tệp đã nén, và thư mục chứa ảnh chụp kết quả kiểm thử. Định dạng lại tệp khóa phiên bản là kiểu bản vá vô nghĩa nhưng rất to, còn định dạng lại ảnh chụp kết quả kiểm thử sẽ làm hỏng phép so sánh và khiến bộ kiểm thử đỏ hàng loạt.

Đưa Prettier vào một dự án đang có mã mà không làm loạn lịch sử thay đổi

Chạy lệnh định dạng lần đầu trên một kho mã đã lớn sẽ tạo ra một bản vá chạm vào gần như mọi tệp. Nếu trộn lẫn bản vá đó với một thay đổi chức năng, người duyệt mã không còn cách nào tách được phần nào là logic mới và phần nào chỉ là dấu cách. Cách làm đã thành chuẩn gồm ba bước. Bước một là gộp riêng một lần chỉ chứa việc định dạng lại, không kèm bất kỳ thay đổi logic nào, và ghi rõ điều đó trong mô tả. Bước hai là tạo tệp khai báo các lần gộp cần bỏ qua khi truy vết dòng, thường đặt tên là .git-blame-ignore-revs, ghi mã băm của lần gộp vừa rồi vào đó rồi cấu hình cho công cụ quản lý mã dùng tệp này; nhờ vậy lệnh truy vết vẫn chỉ đúng người thật sự viết dòng mã chứ không chỉ vào người chạy lệnh định dạng. Bước ba là gắn Prettier vào quy trình: đặt lệnh kiểm tra định dạng trong bước tích hợp để bản vá mới không lọt qua, và cấu hình trình soạn thảo tự định dạng khi lưu tệp cho cả đội. Nếu dự án quá lớn để định dạng một lần, có thể dùng công cụ chỉ định dạng phần đã thay đổi, nhưng cách đó khiến kho mã ở trạng thái nửa vời khá lâu.

Câu hỏi thường gặp (FAQ)

Khung xem trước có dùng đúng Prettier thật không?

Khung xem trước dựng lại đoạn mã mẫu theo đúng mười bốn tùy chọn bạn chọn, chạy hoàn toàn trong trình duyệt và không tải thêm thư viện nào. Nó bám sát cách Prettier xử lý đoạn mã đó, đủ để bạn so sánh các phương án. Kết quả cuối cùng trên dự án thật vẫn do Prettier cài trong dự án quyết định.

printWidth nên đặt bao nhiêu?

Mặc định là 80. Dự án frontend nhiều JSX thường nới lên 100 hoặc 120 vì thẻ kèm chuỗi lớp CSS rất dài, để 80 thì thẻ nào cũng bị bẻ thành nhiều dòng. Quan trọng hơn con số là cả đội thống nhất một con số, vì mỗi lần đổi mốc là một lần cả kho mã bị định dạng lại.

Vì sao có dòng vẫn dài hơn printWidth?

Vì printWidth là mốc để cân nhắc bẻ dòng chứ không phải giới hạn cứng. Khi một dòng không có chỗ nào bẻ được, ví dụ một chuỗi ký tự dài hay một đường dẫn nhập dài, Prettier để nguyên. Đây là hành vi có chủ đích chứ không phải lỗi cấu hình.

trailingComma nên chọn es5 hay all?

Chọn all nếu dự án chạy trên môi trường hiện đại, vì nó thêm dấu phẩy cả trong danh sách tham số hàm, giúp bản vá gọn hơn khi thêm tham số mới. Giá trị es5 chỉ thêm phẩy ở những chỗ mà JavaScript đời cũ chấp nhận, dùng khi bạn còn phải hỗ trợ môi trường rất cũ.

quoteProps ba giá trị khác nhau thế nào?

as-needed chỉ giữ nháy ở những khóa bắt buộc phải có, chẳng hạn khóa chứa dấu gạch ngang. consistent đặt nháy cho toàn bộ khóa của một object nếu có ít nhất một khóa cần nháy. preserve giữ đúng như bạn viết. Đa số dự án để as-needed cho gọn.

endOfLine để lf hay crlf?

Để lf cho mọi hệ điều hành, kể cả khi đội có người dùng Windows, và đặt kèm quy tắc trong tệp .gitattributes. Nếu để auto hoặc để lệch nhau giữa các máy, sẽ có lúc toàn bộ tệp hiện là đã sửa chỉ vì ký tự xuống dòng thay đổi.

Prettier có thay được ESLint không?

Không, hai công cụ làm hai việc khác nhau. Prettier chỉ quyết định mã trông thế nào, nó hoàn toàn không biết mã đúng hay sai. ESLint mới là nơi bắt lỗi logic và quy ước, ví dụ gọi hook trong vòng lặp hay quên phụ thuộc trong useEffect. Dự án nghiêm túc cần cả hai.

Làm sao để Prettier và ESLint thôi sửa ngược nhau?

Cài eslint-config-prettier rồi đặt nó ở vị trí cuối cùng trong cấu hình ESLint. Gói này tắt hết quy tắc định dạng bên ESLint để nhường phần trình bày cho Prettier. Vị trí cuối là bắt buộc vì cấu hình đứng sau ghi đè cấu hình đứng trước.

Nên đặt cấu hình trong .prettierrc hay trong package.json?

Cả hai đều được. Đặt trong package.json ở trường prettier giúp giảm số tệp ở thư mục gốc, còn tệp .prettierrc riêng thì dễ tìm hơn với người mới vào dự án. Chỉ cần tránh khai ở cả hai nơi, vì khi đó rất khó đoán cấu hình nào đang có hiệu lực.

Chạy Prettier lần đầu tạo bản vá quá lớn, có cách nào giảm không?

Hãy gộp riêng một lần chỉ chứa việc định dạng lại, không kèm thay đổi logic. Sau đó ghi mã băm của lần gộp đó vào tệp .git-blame-ignore-revs và cấu hình cho công cụ quản lý mã dùng tệp này, nhờ vậy lệnh truy vết dòng vẫn chỉ đúng người đã viết dòng mã.

Vì sao tệp YAML bị hỏng sau khi định dạng?

Gần như chắc chắn vì useTabs đang bật. YAML không chấp nhận ký tự tab để thụt lề. Hãy thêm một khối overrides cho mẫu đuôi yml và yaml, ép useTabs về false và tabWidth về hai, hoặc đưa hẳn tệp YAML vào .prettierignore.

Vì sao ảnh chụp kết quả kiểm thử bị lỗi sau khi định dạng?

Vì tệp ảnh chụp lưu chính xác chuỗi kết quả để so sánh, định dạng lại là làm lệch chuỗi đó và mọi phép so sánh đều trượt. Đưa thư mục chứa ảnh chụp vào .prettierignore, mẫu tệp bỏ qua ở công cụ này đã có sẵn dòng đó.

Từ khóa liên quan

  • tạo file prettierrc
  • prettier config generator
  • cấu hình prettier cho react
  • printWidth prettier bao nhiêu
  • prettier singleQuote
  • trailingComma es5 hay all
  • arrowParens always avoid
  • bracketSameLine là gì
  • singleAttributePerLine jsx
  • quoteProps as-needed
  • prettier overrides theo loại tệp
  • mẫu prettierignore
  • prettier và eslint xung đột
  • eslint config prettier cách dùng
  • prettier endOfLine lf crlf
  • embeddedLanguageFormatting
  • prettier format on save
  • git blame ignore revs prettier
  • prettier cho file yaml
  • định dạng code tự động javascript

Công cụ Developer Tools liên quan

.env Generator

Tạo file .env và .env.example cho dự án.

.gitignore Generator

Tạo .gitignore cho Node.js, Python, Java.

API Mock Generator

Tạo mock JSON data cho API testing.

API Response Formatter

Format và phân tích API response.

API Tester

Test REST API: GET, POST, PUT, DELETE.

Postman Alternative - API Testing Tool Online với Collections, Environment & File Upload

Postman Alternative miễn phí - Test APIs với Collections, Multiple Environments, Pre-request Scripts, Collection Runner, File Upload (form-data), Tests/Assertions, Code Generation (cURL, JS, Python, Node.js). Browser-based, không cần cài đặt. Save requests, export/import collections, auto-save history. Hỗ trợ Bearer Token, Basic Auth, API Key. Hoàn hảo cho API development và testing.

Swagger API Tester - Test API với OpenAPI/Swagger Spec & Authentication Online

Swagger API Tester miễn phí - Import OpenAPI/Swagger specification và test API endpoints với đầy đủ authentication (Bearer Token/JWT, Basic Auth, API Key). Hỗ trợ OpenAPI 3.0, Swagger 2.0, auto-parse endpoints, parameters, request body. Giao diện như Swagger UI với color-coded methods, grouped endpoints, real-time testing. Hoàn hảo cho API development, testing, debugging secured APIs.

Base Converter

Chuyển đổi Binary, Hex, Base32.

Base64 Encoder

Mã hóa/giải mã Base64.

Binary Converter

Chuyển đổi Decimal, Binary, Hex.

Box Shadow Generator

Tạo CSS box-shadow trực quan.

Chmod Calculator

Tính quyền file Linux.

Dịch vụ của Tấn Phát Digital

Đang xây sản phẩm và cần thêm người làm phần nặng?

Gói giải pháp doanh nghiệp

Nền tảng custom cho ngân hàng, y tế và sàn B2B, chuẩn ISO 27001, GDPR, PCI-DSS, SLA 99.99%.

Từ 50.000.000đXem chi tiết →

Dịch vụ phát triển Blockchain & Web3

Smart contract, dApp và NFT marketplace đa chuỗi, audit bảo mật đầy đủ trước khi lên mainnet.

Từ 50.000.000đXem chi tiết →

Dịch vụ thiết kế website tại Hồ Chí Minh

Website doanh nghiệp, bán hàng và đặt lịch, chuẩn SEO ngay từ cấu trúc, tốc độ tải dưới 3 giây.

Từ 5.000.000đXem chi tiết →

Dịch vụ thiết kế landing page

Trang đích riêng cho từng chiến dịch quảng cáo, tỷ lệ chuyển đổi 3–8%, bàn giao trong 5–21 ngày.

Từ 3.000.000đXem chi tiết →

Tư vấn và báo giá miễn phí trong 24 giờ. Xem toàn bộ dịch vụ

Zalo
Facebook
Tấn Phát Digital
Zalo
Facebook