我编写了一个项目,其中打字没有问题,但在开发过程中我不得不使用旧组件。它们的打字效果不好,因此存在很多错误,因此我将它们放在某个文件夹中(我想忽略该文件夹)。不幸的是没有办法重写它。当使用 tsc 时,由于组件类型不当,我遇到了很多问题。我真的不想使用 tsc 命令禁用预提交检查
我尝试模仿:https://codesandbox.io/p/sandbox/practical-boyd-469gqd?file=%2Fsrc%2Ftest%2Ftest.tsx
ts.config
{
"compilerOptions": {
"baseUrl": "src",
"outDir": "./dist/",
"noImplicitAny": true,
"module": "esnext",
"target": "es5",
"strict": true,
"jsx": "react-jsx",
"allowJs": true,
"moduleResolution": "node",
"allowSyntheticDefaultImports": true,
"esModuleInterop": true,
"resolveJsonModule": true,
"types": ["node"],
"paths": {
"@/*": ["*"]
}
},
"ts-node": {
"compilerOptions": {
"module": "CommonJS"
}
},
"exclude": [
"src/custom-components/*"
]
}
使用排除和其他comman widt tsc
据我了解,有2个解决方案
const fs = require('fs');
const path = require('path');
function processFilesWithExtensions(rootDir, extensions) {
// Читаем содержимое директории
const files = fs.readdirSync(rootDir);
// Перебираем файлы в директории
for (const file of files) {
const filePath = path.join(rootDir, file);
const stat = fs.statSync(filePath);
if (stat.isDirectory()) {
// Если это директория, рекурсивно вызываем функцию для этой директории
processFilesWithExtensions(filePath, extensions);
} else if (stat.isFile()) {
// Если это файл, проверяем его расширение
const fileExtension = path.extname(file).toLowerCase();
if (extensions.includes(fileExtension)) {
// Если расширение файла соответствует заданным, добавляем комментарий в начало файла
const content = fs.readFileSync(filePath, 'utf8');
const newContent = `/* stylelint-disable */\n${content}`;
fs.writeFileSync(filePath, newContent);
}
}
}
}
const rootDirectory = 'custom-components'; // Укажите путь к вашей корневой директории
const allowedExtensions = ['.scss']; // Расширения, для которых нужно добавить комментарий
processFilesWithExtensions(rootDirectory, allowedExtensions);
不要忘记安装文件fs