使用 tsc 忽略文件夹

问题描述 投票:0回答:1

我编写了一个项目,其中打字没有问题,但在开发过程中我不得不使用旧组件。它们的打字效果不好,因此存在很多错误,因此我将它们放在某个文件夹中(我想忽略该文件夹)。不幸的是没有办法重写它。当使用 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

typescript types tsconfig tsc
1个回答
0
投票

据我了解,有2个解决方案

  1. 将文件重命名为js
  2. 添加到 ts-nochesk 但我有超过 100 个文件,这就是为什么我在 Node js 上编写了一个函数,它会遍历所有扩展名为 ts、tsx 的文件,并将这一行添加到开头
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

© www.soinside.com 2019 - 2024. All rights reserved.