fix: improve lint-staged configuration and add batch linting script
- Fix lint-staged to properly pass file arguments to ESLint - Add batch linting script for processing large file sets - Increase Node.js memory limit to 4GB for ESLint - Add lint:batch npm script for manual batch processing
This commit is contained in:
20
.lintstagedrc.js
Normal file
20
.lintstagedrc.js
Normal file
@@ -0,0 +1,20 @@
|
||||
// Lint-staged configuration
|
||||
// Handles large batches of files with proper memory management
|
||||
|
||||
module.exports = {
|
||||
'*.{ts,tsx}': (filenames) => {
|
||||
// Process files in smaller batches to avoid memory issues
|
||||
const batchSize = 20;
|
||||
const batches = [];
|
||||
|
||||
for (let i = 0; i < filenames.length; i += batchSize) {
|
||||
batches.push(filenames.slice(i, i + batchSize));
|
||||
}
|
||||
|
||||
return batches.map((batch) => {
|
||||
return `NODE_OPTIONS='--max-old-space-size=4096' eslint --fix --config eslint.config.js ${batch.join(' ')}`;
|
||||
});
|
||||
},
|
||||
'*.{json,md,yaml,yml}': 'prettier --write',
|
||||
};
|
||||
|
||||
29
scripts/lint-batch.sh
Executable file
29
scripts/lint-batch.sh
Executable file
@@ -0,0 +1,29 @@
|
||||
#!/bin/bash
|
||||
# Lint files in batches to avoid memory issues
|
||||
# Usage: ./scripts/lint-batch.sh [files...]
|
||||
|
||||
set -e
|
||||
|
||||
BATCH_SIZE=20
|
||||
FILES=("$@")
|
||||
|
||||
if [ ${#FILES[@]} -eq 0 ]; then
|
||||
echo "No files provided"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Linting ${#FILES[@]} files in batches of $BATCH_SIZE..."
|
||||
|
||||
for ((i=0; i<${#FILES[@]}; i+=BATCH_SIZE)); do
|
||||
BATCH=("${FILES[@]:i:BATCH_SIZE}")
|
||||
echo "Processing batch $((i/BATCH_SIZE + 1)): ${#BATCH[@]} files"
|
||||
|
||||
NODE_OPTIONS='--max-old-space-size=4096' \
|
||||
eslint --fix --config eslint.config.js "${BATCH[@]}" || {
|
||||
echo "ESLint failed on batch $((i/BATCH_SIZE + 1))"
|
||||
exit 1
|
||||
}
|
||||
done
|
||||
|
||||
echo "All batches processed successfully"
|
||||
|
||||
Reference in New Issue
Block a user