Медленный ворс с красивым - PullRequest
0 голосов
/ 21 июня 2020

Создал новый проект React. Там почти ничего нет - только SSR, разбиение кода и парочка «привет, мир!» страниц. Сверху еслинт добавил похуже. До того, как я добавила более красивое, ворс занимал 10-15 сек c. Теперь у меня есть +2 минуты на почти пустой проект:

time yarn lint
yarn lint  3.19s user 0.49s system 2% cpu 2:35.39 total

Думал, что линяю node_modules. Чтобы проверить, что обновлены 2 файла:

// node_modules/eslint/lib/rules/no-unused-vars.js
...
create(context) {
    const sourceCode = context.getSourceCode();
    // ########### LOG #############
    console.log(`eslint processing file [${+new Date()}] ${context.getFilename()}`);

    const REST_PROPERTY_TYPE = /^(?:RestElement|(?:Experimental)?RestProperty)$/u;

и

// node_modules/eslint-plugin-prettier/eslint-plugin-prettier.js
...
        const prettierFileInfo = prettier.getFileInfo.sync(
          filepath,
          Object.assign(
            {},
            { resolveConfig: true, ignorePath: '.prettierignore' },
            eslintFileInfoOptions
          )
        );
        // ############## LOG ########################
        console.log('Prettier processing file', filepath);

        // Skip if file is ignored using a .prettierignore file
        if (prettierFileInfo.ignored) {

Был бы очень признателен, если бы вы могли сказать мне лучший способ перечислить обработанные файлы. Трюк с

"scripts": {
  ...
  "lint": " DEBUG=eslint:* eslint --ext .js --fix server src tools",

дал слишком много данных.

Не уверен, что мне вообще нужен этот файл

# .prettierignore
# Ignore everything:
/*

# Good guys
!/src
!/server
!/tools

Вывод показал мне, что разница между временными метками первый и последний файл ~ 1.5 se c.

  eslint processing file [1592686834050] /Users/...
  Prettier processing file...
  ....
  eslint processing file [1592686835724] /Users/...
  Prettier processing file ...

Просто интересно, для чего используются остальные 1500 se c?

.eslintr c file

{
  "parser": "babel-eslint",
  "extends": [
    "airbnb",
    "plugin:prettier/recommended"
  ],
  "env": {
    "browser" : true,
    "jest": true
  },
  "plugins": [
    "prettier",
    "react-hooks",
    "jsdoc",
    "jest"
  ],
  "rules": {
    "max-len": [2, 120],
    "react/jsx-wrap-multilines": ["error", {"declaration": false, "assignment": false}],
    "import/prefer-default-export": 0,
    "react/jsx-filename-extension": 0,
    "react-hooks/rules-of-hooks": "error",
    "react-hooks/exhaustive-deps": "warn",
    "arrow-body-style": ["error", "as-needed"],
    "curly": ["error", "all"],
    "jsdoc/check-indentation": "error",
    "jsdoc/check-param-names": "error",
    "jsdoc/check-property-names": "error",
    "jsdoc/check-tag-names": "error",
    "jsdoc/require-hyphen-before-param-description": ["error", "never"],
    "jsdoc/require-param-description": "error",
    "jsdoc/require-param-name": "error",
    "jsdoc/require-param-type": "error",
    "jsdoc/require-param": "error",
    "jsdoc/require-property": "error",
    "jsdoc/require-property-name": "error",
    "jsdoc/require-property-type": "error",
    "jsdoc/require-returns-description": "error",
    "jsdoc/require-returns-type": "error",
    "jsdoc/require-returns": "error"
  },
  "settings": {
    "import/resolver": {
      "node": {
        "paths": ["src", "server", "tools"]
      }
    }
  },
  "overrides": [
    {
      "files": [ "**/*.stories.js", "**/*.story.js" ],
      "rules": {
        "import/no-extraneous-dependencies": 0
      }
    }
  ]
}

1 Ответ

0 голосов
/ 21 июня 2020

Перезапуск Ma c и нормальное время обработки (~ 4 секунды):

time yarn lint
yarn lint  4.09s user 0.61s system 109% cpu 4.279 total
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...