anyig
Version:
A powerful and extensible tool for generating ignore files for various development tools and environments
568 lines (503 loc) • 8.62 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.allTemplates = exports.templateCategories = void 0;
exports.getTemplateByName = getTemplateByName;
exports.getTemplatesByCategory = getTemplatesByCategory;
const gitTemplates = [
{
name: 'gitignore',
filename: '.gitignore',
description: 'Git版本控制忽略文件',
category: 'version-control',
content: `# Dependencies
node_modules/
bower_components/
jspm_packages/
# Build outputs
dist/
build/
out/
.next/
.nuxt/
.vuepress/dist/
# Environment files
.env
.env.local
.env.development.local
.env.test.local
.env.production.local
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
lerna-debug.log*
# Runtime data
pids
*.pid
*.seed
*.pid.lock
# Coverage directory used by tools like istanbul
coverage/
*.lcov
.nyc_output
# Dependency directories
node_modules/
jspm_packages/
# Optional npm cache directory
.npm
# Optional eslint cache
.eslintcache
# Optional REPL history
.node_repl_history
# Output of 'npm pack'
*.tgz
# Yarn Integrity file
.yarn-integrity
# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache
# IDE and editor files
.vscode/
.idea/
*.swp
*.swo
*~
# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
# Temporary folders
tmp/
temp/`
}
];
const npmTemplates = [
{
name: 'npmignore',
filename: '.npmignore',
description: 'NPM发布忽略文件',
category: 'package-manager',
content: `# Source files
src/
*.ts
*.tsx
!*.d.ts
# Tests
test/
tests/
__tests__/
*.test.*
*.spec.*
# Build tools
webpack.config.*
rollup.config.*
vite.config.*
tsconfig.json
babel.config.*
.babelrc*
# Linting
.eslintrc*
.prettierrc*
.stylelintrc*
# Documentation
docs/
*.md
!README.md
# Development dependencies
node_modules/
.npm
.yarn
# Logs
logs
*.log
# Coverage
coverage/
.nyc_output
# Environment files
.env*
# IDE
.vscode/
.idea/
# OS
.DS_Store
Thumbs.db`
}
];
const lintingTemplates = [
{
name: 'eslintignore',
filename: '.eslintignore',
description: 'ESLint忽略文件',
category: 'linting',
content: `node_modules/
dist/
build/
coverage/
.next/
.nuxt/
.vuepress/dist/
*.min.js
*.bundle.js`
},
{
name: 'prettierignore',
filename: '.prettierignore',
description: 'Prettier忽略文件',
category: 'linting',
content: `node_modules/
dist/
build/
coverage/
.next/
.nuxt/
.vuepress/dist/
*.min.js
*.bundle.js
package-lock.json
yarn.lock
pnpm-lock.yaml`
}
];
const buildToolTemplates = [
{
name: 'dockerignore',
filename: '.dockerignore',
description: 'Docker构建忽略文件',
category: 'build-tools',
content: `node_modules/
npm-debug.log
Dockerfile*
docker-compose*
.dockerignore
.git
.gitignore
README.md
.env
.nyc_output
coverage
.nyc_output
.vscode
.idea`
},
{
name: 'babelignore',
filename: '.babelignore',
description: 'Babel转译忽略文件',
category: 'build-tools',
content: `node_modules/
dist/
build/
coverage/
*.min.js
*.bundle.js`
}
];
const editorTemplates = [
{
name: 'vscode-settings',
filename: '.vscode/settings.json',
description: 'VS Code工作区设置',
category: 'editor',
content: `{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"source.fixAll.eslint": true
},
"typescript.preferences.importModuleSpecifier": "relative",
"files.exclude": {
"**/node_modules": true,
"**/dist": true,
"**/build": true,
"**/.git": true
}
}`
},
{
name: 'editorconfig',
filename: '.editorconfig',
description: 'EditorConfig配置文件',
category: 'editor',
content: `root = true
[*]
charset = utf-8
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
indent_style = space
indent_size = 2
[*.md]
trim_trailing_whitespace = false
[*.{yml,yaml}]
indent_size = 2
[*.{js,ts,jsx,tsx}]
indent_size = 2
[*.json]
indent_size = 2`
}
];
const frameworkTemplates = [
{
name: 'nextjs-gitignore',
filename: '.gitignore',
description: 'Next.js项目Git忽略文件',
category: 'framework',
content: `# Dependencies
/node_modules
/.pnp
.pnp.js
# Testing
/coverage
# Next.js
/.next/
/out/
# Production
/build
# Misc
.DS_Store
*.pem
# Debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Local env files
.env*.local
# Vercel
.vercel
# TypeScript
*.tsbuildinfo
next-env.d.ts`
},
{
name: 'react-gitignore',
filename: '.gitignore',
description: 'React项目Git忽略文件',
category: 'framework',
content: `# Dependencies
/node_modules
/.pnp
.pnp.js
# Testing
/coverage
# Production
/build
# Misc
.DS_Store
.env.local
.env.development.local
.env.test.local
.env.production.local
# Logs
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# IDE
.vscode/
.idea/
# OS
Thumbs.db`
},
{
name: 'vue-gitignore',
filename: '.gitignore',
description: 'Vue.js项目Git忽略文件',
category: 'framework',
content: `.DS_Store
node_modules
/dist
# Local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?`
}
];
const languageTemplates = [
{
name: 'python-gitignore',
filename: '.gitignore',
description: 'Python项目Git忽略文件',
category: 'language',
content: `# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# C extensions
*.so
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST
# PyInstaller
*.manifest
*.spec
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Unit test / coverage reports
htmlcov/
.tox/
.coverage
.coverage.*
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.pytest_cache/
# Virtual environments
.env
.venv
env/
venv/
ENV/
env.bak/
venv.bak/
# IDEs
.vscode/
.idea/
*.swp
*.swo
# OS
.DS_Store
Thumbs.db`
},
{
name: 'java-gitignore',
filename: '.gitignore',
description: 'Java项目Git忽略文件',
category: 'language',
content: `# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# Virtual machine crash logs
hs_err_pid*
# Maven
target/
pom.xml.tag
pom.xml.releaseBackup
pom.xml.versionsBackup
pom.xml.next
release.properties
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar
# Gradle
.gradle
build/
!gradle/wrapper/gradle-wrapper.jar
!**/src/main/**/build/
!**/src/test/**/build/
# IntelliJ IDEA
.idea/
*.iws
*.iml
*.ipr
out/
!**/src/main/**/out/
!**/src/test/**/out/
# Eclipse
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
bin/
!**/src/main/**/bin/
!**/src/test/**/bin/
# VS Code
.vscode/`
}
];
exports.templateCategories = [
{
name: 'version-control',
description: '版本控制',
templates: gitTemplates
},
{
name: 'package-manager',
description: '包管理器',
templates: npmTemplates
},
{
name: 'linting',
description: '代码质量工具',
templates: lintingTemplates
},
{
name: 'build-tools',
description: '构建工具',
templates: buildToolTemplates
},
{
name: 'editor',
description: '编辑器配置',
templates: editorTemplates
},
{
name: 'framework',
description: '前端框架',
templates: frameworkTemplates
},
{
name: 'language',
description: '编程语言',
templates: languageTemplates
}
];
exports.allTemplates = exports.templateCategories.reduce((acc, category) => [...acc, ...category.templates], []);
function getTemplateByName(name) {
return exports.allTemplates.find(template => template.name === name || template.filename === name);
}
function getTemplatesByCategory(category) {
const categoryObj = exports.templateCategories.find(cat => cat.name === category);
return categoryObj ? categoryObj.templates : [];
}
//# sourceMappingURL=index.js.map