{"_id":"@brickjs-fe/prettier-config","name":"@brickjs-fe/prettier-config","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@brickjs-fe/prettier-config","version":"0.0.1","description":"BrickJs Prettier 配置 - 适用于 Vue3 + TypeScript 项目的 Prettier 配置","main":"index.js","type":"module","scripts":{"prepublishOnly":"echo 'Preparing to publish @brickjs-fe/prettier-config...'","postpublish":"echo 'Successfully published @brickjs-fe/prettier-config!'","release":"npm publish","release:dry-run":"npm publish --dry-run"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"keywords":["prettier","prettier-config","vue3","typescript","brickjs"],"author":{"name":"brickFE","email":"brickfe@163.com"},"license":"MIT","packageManager":"pnpm@10.11.0","repository":{"type":"git","url":"git+https://github.com/brickFE/brickjs.git","directory":"packages/brick-prettier-config"},"bugs":{"url":"https://github.com/brickFE/brickjs/issues"},"homepage":"https://github.com/brickFE/brickjs#readme","peerDependencies":{"prettier":"^3.0.0"},"peerDependenciesMeta":{"prettier":{"optional":true}},"engines":{"node":">=20.10.0","pnpm":">=10.11.0"},"_id":"@brickjs-fe/prettier-config@0.0.1","gitHead":"073808cdd3d4ab12a6e708ae78f6a9393c1385dd","_nodeVersion":"20.19.4","_npmVersion":"10.8.2","dist":{"integrity":"sha512-s7oQK0I8CK/5swuxDXxGvmr1qK55iTxL6ioIt5drpEc8msyD6RPtHYEoN+/NmLwoprHDxsI1VtPxO9M+1PGGtA==","shasum":"56aacfb070a5202789a376ad3b9fd7ef08673930","tarball":"https://registry.npmjs.org/@brickjs-fe/prettier-config/-/prettier-config-0.0.1.tgz","fileCount":3,"unpackedSize":9905,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQD/kpa0ijDaiScLB8UfoI1kyHEB/28amPLdREd4XJxjygIhAOkQYs5sQT40r8dM35vdtmzOCYwaOe76e2ssc0TfzhqX"}]},"_npmUser":{"name":"brickjs-fe","email":"brickfe@163.com"},"directories":{},"maintainers":[{"name":"brickjs-fe","email":"brickfe@163.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/prettier-config_0.0.1_1757942899711_0.7509076360621798"},"_hasShrinkwrap":false}},"time":{"created":"2025-09-15T13:28:19.584Z","0.0.1":"2025-09-15T13:28:19.869Z","modified":"2025-09-15T13:28:20.179Z"},"maintainers":[{"name":"brickjs-fe","email":"brickfe@163.com"}],"description":"BrickJs Prettier 配置 - 适用于 Vue3 + TypeScript 项目的 Prettier 配置","homepage":"https://github.com/brickFE/brickjs#readme","keywords":["prettier","prettier-config","vue3","typescript","brickjs"],"repository":{"type":"git","url":"git+https://github.com/brickFE/brickjs.git","directory":"packages/brick-prettier-config"},"author":{"name":"brickFE","email":"brickfe@163.com"},"bugs":{"url":"https://github.com/brickFE/brickjs/issues"},"license":"MIT","readme":"# @brickjs-fe/brick-prettier-config\n\n<div align=\"center\">\n\n![BrickJs Prettier Config](https://img.shields.io/badge/BrickJs-Prettier%20Config-blue?style=for-the-badge&logo=prettier)\n\n**适用于 Vue3 + TypeScript 项目的 Prettier 配置**\n\n[![npm version](https://img.shields.io/npm/v/@brickjs-fe/brick-prettier-config?style=flat-square)](https://www.npmjs.com/package/@brickjs-fe/brick-prettier-config)\n[![npm downloads](https://img.shields.io/npm/dm/@brickjs-fe/brick-prettier-config?style=flat-square)](https://www.npmjs.com/package/@brickjs-fe/brick-prettier-config)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg?style=flat-square)](https://opensource.org/licenses/MIT)\n\n</div>\n\n## 📖 项目介绍\n\n`@brickjs-fe/brick-prettier-config` 是 BrickJs 项目提供的 Prettier 配置包，专为 Vue3 + TypeScript 项目设计。该配置提供了统一的代码格式化标准，确保代码风格的一致性。\n\n## ✨ 特性\n\n- 🎯 **Vue3 支持**: 完整的 Vue3 单文件组件支持\n- 🔧 **TypeScript 集成**: 全面的 TypeScript 代码格式化\n- 🎨 **统一风格**: 与 ESLint 规则完美兼容\n- 📝 **详细注释**: 每个配置项都有详细的中文注释说明\n- 🚫 **禁止末尾逗号**: 内置禁止末尾逗号的规则\n- 🔄 **灵活配置**: 支持覆盖和自定义规则\n\n## 🛠️ 技术栈\n\n- **Prettier**: 代码格式化工具\n- **Vue**: Vue 单文件组件支持\n- **TypeScript**: TypeScript 代码格式化\n\n## 🚀 快速开始\n\n### 安装\n\n```bash\n# 使用 pnpm 安装\npnpm add -D @brickjs-fe/brick-prettier-config\n\n# 或使用 npm 安装\nnpm install -D @brickjs-fe/brick-prettier-config\n\n# 或使用 yarn 安装\nyarn add -D @brickjs-fe/brick-prettier-config\n\n# 或使用 bun 安装\nbun add -D @brickjs-fe/brick-prettier-config\n```\n\n### 基本使用\n\n在项目根目录创建 `.prettierrc.js` 文件：\n\n```javascript\nmodule.exports = require(\"@brickjs-fe/brick-prettier-config\");\n```\n\n### 在 package.json 中使用\n\n```json\n{\n  \"prettier\": \"@brickjs-fe/brick-prettier-config\"\n}\n```\n\n### 使用 ES 模块\n\n```javascript\n// .prettierrc.mjs\nimport config from \"@brickjs-fe/brick-prettier-config\";\n\nexport default config;\n```\n\n## 📋 配置说明\n\n### 基础格式化选项\n\n- **semi**: 语句末尾添加分号\n- **singleQuote**: 使用单引号而不是双引号\n- **quoteProps**: 仅在需要时给对象属性加引号\n- **jsxSingleQuote**: JSX 中使用单引号\n\n### 代码风格\n\n- **trailingComma**: 禁止末尾逗号，与 ESLint 规则保持一致\n- **printWidth**: 每行最大字符数 (100)\n- **tabWidth**: 缩进空格数 (2)\n- **useTabs**: 使用空格而不是制表符\n- **endOfLine**: 使用 LF 作为行结束符\n\n### 括号和空格\n\n- **bracketSpacing**: 对象括号内添加空格\n- **bracketSameLine**: 将多行 JSX 元素的 > 放在下一行\n- **arrowParens**: 箭头函数参数只有一个时省略括号\n\n### 其他选项\n\n- **proseWrap**: 不自动换行 prose\n- **htmlWhitespaceSensitivity**: HTML 空白字符敏感度\n- **vueIndentScriptAndStyle**: Vue 文件中不缩进 script 和 style 标签\n- **embeddedLanguageFormatting**: 自动格式化嵌入的语言\n\n### 文件特定配置\n\n- **Markdown 文件**: 保持原始换行，80 字符换行\n- **JSON 文件**: 200 字符换行\n- **YAML 文件**: 2 个空格缩进\n\n## 🔧 配置选项\n\n### 环境配置\n\n```javascript\nmodule.exports = {\n  ...require(\"@brickjs-fe/brick-prettier-config\"),\n  // 可以在这里添加项目特定的配置\n  printWidth: 120, // 覆盖默认的 100 字符\n};\n```\n\n### 规则覆盖\n\n```javascript\nmodule.exports = {\n  ...require(\"@brickjs-fe/brick-prettier-config\"),\n  rules: {\n    // 覆盖特定规则\n    semi: false, // 不使用分号\n    singleQuote: false, // 使用双引号\n  },\n};\n```\n\n## 📁 文件支持\n\n该配置支持以下文件类型：\n\n- `.js` - JavaScript 文件\n- `.jsx` - React JSX 文件\n- `.ts` - TypeScript 文件\n- `.tsx` - TypeScript JSX 文件\n- `.vue` - Vue 单文件组件\n- `.json` - JSON 文件\n- `.md` - Markdown 文件\n- `.yml` - YAML 文件\n- `.css` - CSS 文件\n- `.scss` - SCSS 文件\n- `.sass` - SASS 文件\n- `.less` - Less 文件\n\n## 🎯 最佳实践\n\n### 1. 项目结构\n\n```\nproject/\n├── .prettierrc.js         # Prettier 配置\n├── .eslintrc.js           # ESLint 配置\n├── src/                   # 源代码目录\n│   ├── components/        # Vue 组件\n│   ├── views/            # 页面组件\n│   ├── utils/            # 工具函数\n│   └── types/            # 类型定义\n└── package.json          # 项目配置\n```\n\n### 2. 代码示例\n\n```vue\n<template>\n  <div class=\"example\">\n    <h1>{{ title }}</h1>\n    <button @click=\"handleClick\">点击我</button>\n  </div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref } from \"vue\";\n\n// 响应式数据\nconst title = ref(\"Hello World\");\n\n// 事件处理函数\nconst handleClick = () => {\n  console.log(\"按钮被点击了\");\n};\n</script>\n\n<style scoped>\n.example {\n  padding: 20px;\n}\n</style>\n```\n\n### 3. TypeScript 类型定义\n\n```typescript\n// types/index.ts\nexport interface User {\n  id: number;\n  name: string;\n  email: string;\n}\n\nexport interface ApiResponse<T> {\n  data: T;\n  message: string;\n  success: boolean;\n}\n```\n\n## 🔍 故障排除\n\n### 常见问题\n\n1. **规则冲突**: 确保 Prettier 配置与 ESLint 规则兼容\n2. **文件格式**: 检查文件扩展名是否被支持\n3. **编辑器集成**: 确保编辑器已安装 Prettier 插件\n\n### 调试技巧\n\n```bash\n# 检查 Prettier 配置\nnpx prettier --print-config src/main.ts\n\n# 检查特定文件的格式\nnpx prettier --check src/components/HelloWorld.vue\n\n# 运行 Prettier 格式化\nnpx prettier --write src --ext .js,.ts,.vue\n```\n\n## 🤝 贡献指南\n\n1. Fork 本仓库\n2. 创建特性分支 (`git checkout -b feature/AmazingFeature`)\n3. 提交更改 (`git commit -m 'feat: add some AmazingFeature'`)\n4. 推送到分支 (`git push origin feature/AmazingFeature`)\n5. 打开 Pull Request\n\n## 📄 许可证\n\n本项目基于 [MIT](https://opensource.org/licenses/MIT) 许可证开源。\n\n## 👥 维护者\n\n- [brickFE](https://github.com/brickFE) - _项目维护者_\n\n## 🙏 致谢\n\n感谢以下开源项目的支持：\n\n- [Prettier](https://prettier.io/) - 代码格式化工具\n- [Vue.js](https://vuejs.org/) - 渐进式 JavaScript 框架\n- [TypeScript](https://www.typescriptlang.org/) - 静态类型检查\n\n---\n\n<div align=\"center\">\n\n**如果这个项目对你有帮助，请给它一个 ⭐️**\n\n[报告问题](https://github.com/brickFE/brickjs/issues) · [提出建议](https://github.com/brickFE/brickjs/discussions) · [贡献代码](https://github.com/brickFE/brickjs/pulls)\n\n</div>\n","readmeFilename":"README.md","_rev":"1-b14069fc82ea2e4dca1de8b63e56a49d"}