Jest: рдХреИрд╢ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЗ рджреМрд░рд╛рди рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд▓рд┐рдЦрддреЗ рд╣реИрдВ

рдХреЛ рдирд┐рд░реНрдорд┐рдд 7 рд╕рд┐рддре░ 2017  ┬╖  79рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: facebook/jest

рдХреНрдпрд╛ рдЖрдк рдХрд┐рд╕реА рд╕реБрд╡рд┐рдзрд╛ рдХрд╛ рдЕрдиреБрд░реЛрдз рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рдмрдЧ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ?
рдмрдЧ

рд╡рд░реНрддрдорд╛рди рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?
рдирдП рдкрд░рдорд╛рдгреБ рдХреИрд╢ рд▓реЗрдЦрди рдХреЗ рд╕рд╛рде рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддреЗ рд╕рдордп, рд╣рдореЗрдВ рдирд╛рдо рдмрджрд▓рдиреЗ рдореЗрдВ рддреНрд░реБрдЯрд┐ рд╣реЛ рд░рд╣реА рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдХ рд╣реА рдлрд╛рдЗрд▓реЛрдВ рдореЗрдВ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреА рд╣реИрдВред --no-cache рд╡рд┐рдХрд▓реНрдк рд╕реЗрдЯ рдХреЗ рд╕рд╛рде рднреА рдпрд╣ рдЕрднреА рднреА рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдорд╛рд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрднреА рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдЕрдкреЗрдХреНрд╖рд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреНрдпрд╛ рд╣реИ?

  1. рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ --no-cache рдХреЛ рдХреИрд╢ рдлрд╛рдЗрд▓ рдирд╣реАрдВ рд▓рд┐рдЦрдирд╛ рдЪрд╛рд╣рд┐рдП
  2. рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдореЗрдВ рдХреИрд╢рд┐рдВрдЧ рдЯрдХрд░рд╛рддреА рдирд╣реАрдВ рд╣реИ, рдпрд╛ рдкрд░реАрдХреНрд╖рдг рдХреЛ рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдХреГрдкрдпрд╛ рдЕрдкрдирд╛ рд╕рдЯреАрдХ рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкреНрд░рджрд╛рди рдХрд░реЗрдВ рдФрд░ рдЕрдкрдиреЗ рдЬреЗрд╕реНрдЯ, рдиреЛрдб, рдпрд╛рд░реНрди / рдПрдирдкреАрдПрдо рд╕рдВрд╕реНрдХрд░рдг рдФрд░ рдСрдкрд░реЗрдЯрд┐рдВрдЧ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд░реЗрдВред

{
    "clearMocks": true,
    "collectCoverageFrom": [
        "packages/**/src/**/*.{ts,tsx}",
        "!packages/sf-lint/**",
        "!**/*.d.ts"
    ],
    "coverageReporters": [
        "text-summary"
    ],
    "moduleFileExtensions": [
        "ts",
        "tsx",
        "js",
        "json"
    ],
    "setupTestFrameworkScriptFile": "<rootDir>/jestEnvironment.js",
    "transform": {
        "\\.(ts|tsx)$": "<rootDir>/scripts/preprocessTypescript.js",
        "\\.(less|css|svg|gif|png|jpg|jpeg)$": "<rootDir>/scripts/preprocessText.js"
    },
    "testRegex": "(Spec|.spec).tsx?$"
}

рдЬреЗрд╕реНрдЯ 21.0.1
рдиреЛрдб 6.9.2
рдпрд╛рд░реНрди 0.27.x / 1.0.0
рдУрдПрд╕ рд╡рд┐рдВрдбреЛрдЬ

Help Wanted Windows

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдмрд╕ рдореЗрдВ рдЪрд┐рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдореИрдВ рдПрдХ рд╡рд┐рдВрдбреЛ Jenkins CI рд╕рд░реНрд╡рд░ рдкрд░ jest 23.6 рдХреЗ рд╕рд╛рде рдпрд╣ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред

  • --runInBand рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рдордп рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рдкреБрд╢ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреА рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рд╕реБрдкрд░-рдЙрджрд╛рд╕ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
  • @jsheetzati (https://github.com/facebook/jest/issues/4444#issuecomment-370533355) рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ package.json рдореЗрдВ рдЧреНрд░реЗрд╕рдлреБрд▓ -рдПрдлрдПрд╕ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╣реИрдХ рдХрд╛ рдПрдХ рд╕рд╛ рд╣реИред

рдЪреВрдБрдХрд┐ graceful-fs рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ (https://github.com/isaacs/node-graceful-fs/pull/131 рдиреЗ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдЬреБрд▓рд╛рдИ рд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИ), рд╢рд╛рдпрдж рдпрд╣ рдХрд╛рдВрдЯрд╛ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ ? рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдПрдХ рдирд╛рдЧ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдЕрдЪрд╛рдирдХ рдЗрд╕реЗ рдЫрд╛рдВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреВрдж рдХрд░)):

рд╕рднреА 79 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдХреНрдпрд╛ рдпрд╣ рд╕рдВрдмрдВрдзрд┐рдд рдирд╣реАрдВ рд╣реИ? https://github.com/facebook/jest/pull/4432

рдореИрдВ рдРрд╕рд╛ рдирд╣реАрдВ рдорд╛рдирддрд╛ред рдореЗрд░рд╛ рдорд╛рдирдирд╛ тАЛтАЛрд╣реИ рдХрд┐ рдЬрд┐рд╕ рдорд╛рдорд▓реЗ рдХреЛ рд╣рдо рдЕрдкрдиреЗ рд░реЗрдкреЛ рдореЗрдВ рджреЗрдЦрддреЗ рд╣реИрдВ, рд╡рд╣реА рд╕рдЯреАрдХ рдлрд╝рд╛рдЗрд▓ рд╣реИ рдЬреЛ 2 рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ (рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдЪрд▓рдиреЗ рдХреЗ рджреМрд░рд╛рди) рдХреЗ рд▓рд┐рдП рдордЬрд╝рд╛рдХ рдЙрдбрд╝рд╛рддреА рд╣реИ рдЬрд┐рд╕рдХреЗ рдХрд╛рд░рдг рдХреИрд╢ рд░рд╛рдЗрдЯ рдСрдкрд░реЗрд╢рди рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдПрдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдлрд╝рд╛рдЗрд▓ рд▓реЙрдХ рд╣реЛрддреА рд╣реИред рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯрд┐рдХрдЯ рд╕рдорд╛рди рд╕рд╛рдордЧреНрд░реА рд╡рд╛рд▓реА рд╡рд┐рднрд┐рдиреНрди рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рд╣реИред рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЙрди рдорд╛рдорд▓реЛрдВ рдореЗрдВ рд╕реЗ рдХреЛрдИ рднреА рдирд╣реАрдВ рд╣реИ рдЬрд┐рдирдХреЗ рднрдВрдбрд╛рд░ рдореЗрдВ рд╣рдо рд╣реЛрд╕реНрдЯ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╣рдо рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рднрд╛рдЧреЗред

рд╣рдо рдореВрд▓ рд░реВрдк рд╕реЗ рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджреЗ рдореЗрдВ рднрд╛рдЧ рд▓реЗрддреЗ рд╣реИрдВред рдкреБрди: рдЙрддреНрдкрдиреНрди рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдЖрд╕рд╛рди рддрд░реАрдХрд╛ рдпрд╣ рдерд╛ рдХрд┐ рдЕрдЧрд▓реЗ рд░рди рдкрд░ рдХреИрд╢ рдЬрдирд░реЗрд╢рди рдХреЛ рдордЬрдмреВрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП jest cacheDirectory рдХреЛ рд╣рдЯрд╛рдпрд╛ рдЬрд╛рдПред
`` `рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдЪрд▓рд╛рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛

jest: failed to cache transform results in:

рд╕реА: / myniceproject / src / рд╣рдВрд╕реА-рдХреИрд╢ / рд╣рдВрд╕реА-рдкрд░рд┐рдгрдд-рд╕рдВрдЪрдп-b2e8f1f700b9bd266a0d27bb01b47a2b-34a7e3d71d38ff01f65fdb5abdf5126b / 3F / settingsProvider_3f1439e55275a95ecfdb7dcb432f7958
рд╡рд┐рдлрд▓рддрд╛ рд╕рдВрджреЗрд╢: EPERM: рд╕рдВрдЪрд╛рд▓рди рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рд╣реИ, рдирд╛рдо рдмрджрд▓реЗрдВ
'C: \ myniceproject \ srcjest-cachejest-рдкрд░рд┐рдгрдд-рд╕рдВрдЪрдп-b2e8f1f700b9bd266a0d27bb01b47a2b-34a7e3d71d38ff01f65fdb5abdf5126b \ 3F \ settingsProvider_3f1439e55275a95ecfdb7dcb432f7958.1630729137'
->
'C: \ myniceproject \ srcjest-cachejest-рдкрд░рд┐рдгрдд-рд╕рдВрдЪрдп-b2e8f1f700b9bd266a0d27bb01b47a2b-34a7e3d71d38ff01f65fdb5abdf5126b \ 3F \ settingsProvider_3f1439e55275a95ecfdb7dcb432f7958'`

рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рд╣реЛрдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдЖрд╕рдкрд╛рд╕ рдХреЛрдИ рд░рд╛рд╕реНрддрд╛ рдирд╣реАрдВ рдорд┐рд▓ рд╕рдХрддрд╛ рд╣реИред рдЬреЗрд╕реНрдЯ рдореВрд▓ рд░реВрдк рд╕реЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЗрд╕ рддрд░рд╣ рдЕрдиреБрдкрдпреЛрдЧреА рд╣реИред

рд╣рдо 20.0.4 рд╕реЗ 21.2.0 рдХреЛ рдЕрдкрдбреЗрдЯ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рдЕрдм рд╣рдорд╛рд░реЗ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкрд░ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рддреНрд░реБрдЯрд┐ рд╣реИ:

Test suite failed to run
[13:46:50]
[13:46:50]    jest: failed to cache transform results in: C:/TeamCity/buildAgent/temp/buildTmp/jest/jest-transform-cache-c60bb8ad55f1dbc29115038800657f2f-4895fc34da3cd9ad1e120af622bca745/3b/fe-selectors_3b56db772e798e2e4d0c9fc7c9e4a770
[13:46:50]    Failure message: EPERM: operation not permitted, rename '...\jest\jest-transform-cache-c60bb8ad55f1dbc29115038800657f2f-4895fc34da3cd9ad1e120af622bca745\3b\fe-selectors_3b56db772e798e2e4d0c9fc7c9e4a770.1701848979' -> '...\jest\jest-transform-cache-c60bb8ad55f1dbc29115038800657f2f-4895fc34da3cd9ad1e120af622bca745\3b\fe-selectors_3b56db772e798e2e4d0c9fc7c9e4a770'
[13:46:50]      
[13:46:50]      at Object.fs.renameSync (fs.js:772:18)
[13:46:50]      at Function.writeFileSync [as sync] (node_modules/write-file-atomic/index.js:192:8)

рдореИрдВ рдЕрдм рдПрдХ рд╣реА рдореБрджреНрджрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░ рд░рд╣рд╛ рд╣реВрдБ рдмреЗрддрд░рддреАрдм рдврдВрдЧ рд╕реЗ рдЯреВрдЯ рд░рд╣реЗ рд╣реИрдВред

рдЕрдЧрд░ рдореИрдВ --runInBand рдЭрдВрдбреЗ рдХреЗ рд╕рд╛рде рдкрд░реАрдХреНрд╖рдг рдЪрд▓рд╛рддрд╛ рд╣реВрдВ рддреЛ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рд╕рдм рдХреБрдЫ рдареАрдХ рд╣реИред

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХреЛ рд▓рдЧрд╛рддрд╛рд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ:

  тЧП Test suite failed to run

    jest: failed to cache transform results in: .../jest-transform-cache-...
    Failure message: EPERM: operation not permitted, rename '...' -> '...'
        at Error (native)

      at Object.fs.renameSync (fs.js:810:18)
      at Function.writeFileSync [as sync] (node_modules/write-file-atomic/index.js:192:8)

рдЬреЗрд╕реНрдЯ 21.2.1
рдиреЛрдб 6.11.1
рдУрдПрд╕ рд╡рд┐рдВрдбреЛрдЬ

--no-cache рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ jest-transform-cache рдЕрднреА рднреА рд▓рд┐рдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИред рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдорджрдж рдХрд░рддреА рд╣реИ рд╡рд╣ рд╣реИ --runInBand , рдЬреЛ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╢рд╛рдпрдж рд╣реА рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реЛред

рд╕рдорд╕реНрдпрд╛ рдХрд╛ рдирд┐рджрд╛рди рдХрд░рдиреЗ рдореЗрдВ рд╕рд╣рд╛рдпрддрд╛ рдХреЗ рд▓рд┐рдП рд╣рдо рдХреБрдЫ рднреА рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдХреНрдпрд╛ рдореБрдЭреЗ рд░реЗрдк рдХреЗрд╕ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рд┐рдП?

рдХреНрдпрд╛ рдпрд╣ рддреНрд░реБрдЯрд┐ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИ? рдХреНрдпрд╛ рдЗрд╕реЗ рдкреВрд░реЗ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдХреЛ рд▓реЗрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рдХреНрдпрд╛ рдкреАрдЫреЗ рд╣рдЯрдиреЗ рдФрд░ рдкреАрдЫреЗ рд╣рдЯрдиреЗ рдХрд╛ рдХреЛрдИ рддрд░реАрдХрд╛ рд╣реИ?

рдПрдХ рдЫреЛрдЯреЗ рд╕реЗ рд░рд┐рдкреНрд░реЛ рд╣реЛрдиреЗ рд╕реЗ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛

рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рд░рд┐рдкреНрд░реЛ:
рдпрд╣ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо рдХреИрд╢ рдХреЛ рдкреЙрдкреНрдпреБрд▓реЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП babel-jest рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрд╢-рдПрд╕рд╕ рдЪрд▓рд╛рддрд╛ рд╣реИред
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рджреЛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдорд╢реАрдиреЛрдВ (Win8.1 рдФрд░ Win10) рдкрд░ 80% рд╕рдордп рдХреЗ рд▓рд┐рдП рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк --no-cache рдирд┐рдХрд╛рд▓рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ 100% рд╕рдордп рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред --runInBand рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдпрд╣ 0% рддрдХ рдиреАрдЪреЗ рдЖ рдЬрд╛рддрд╛ рд╣реИред

(рдЬрд┐рдЬреНрдЮрд╛рд╕рд╛ рд╕реЗ рдмрд╛рд╣рд░ Win10 рдкрд░ WSL рдореЗрдВ рдЗрд╕реЗ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдкреЙрдЬрд╝рд┐рдХреНрд╕ рдПрдкреАрдЖрдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдкреБрди: рдкреЗрд╢ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рдирд╣реАрдВ рд╣реИ)

рдХреНрдпрд╛ рдпрд╣ рд╕рд┐рд░реНрдл рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рд╣реЛ рд░рд╣рд╛ рд╣реИ? рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рд╕реЗ рдкрд░реЗ рд╡рд┐рдВрдбреЛрдЬрд╝ рдорд╢реАрдиреЛрдВ рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореЗрд░реЗ рд▓рд┐рдП рдбреАрдмрдЧ рдХрд░рдирд╛ рд╕рдмрд╕реЗ рдЖрд╕рд╛рди рдирд╣реАрдВ рд╣реИ ...

@jeanlauliac рдХреЛ рдЖрдкрдиреЗ # 4088 рдореЗрдВ write-file-atomic рдЬреЛрдбрд╝рд╛, рдХреНрдпрд╛ рдЖрдк рдорджрдж рдХрд░ рдкрд╛рдПрдВрдЧреЗ?

рдпрд╣ рд╕рдорд╕реНрдпрд╛ https://github.com/npm/write-file-atomic/issues/10 рдФрд░ https://github.com/npm/write-file-atomic/pull/22 рдХреЗ рд╕рдорд╛рди рд╣реИ

рдмрд╕ рдПрдХ рд╕рд╛рдорди рдЯреНрд░реЗрд╕ рдЪрд▓рд╛, рдпрд╣рд╛рдБ рдЗрд╕ рдореБрджреНрджреЗ рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ:

рджрд┐рди рдХрд╛ рд╕рдордп | рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдирд╛рдо | рдкреАрдЖрдИрдбреА тАЛтАЛ| рдСрдкрд░реЗрд╢рди | рдкрде | рдкрд░рд┐рдгрд╛рдо | рд╡рд┐рд╕реНрддрд╛рд░
- | - | - | - | - | - | -
16: 54: 43.2304011 | рдиреЛрдбред exe | 7624 | SetRenameInformationFile | ... \ рдирд┐рд░рдВрддрд░_ee286bbcf367680ce61a90e506522f92.82986661 | рд╕рдлрд▓рддрд╛ | рд░рд┐рдкреНрд▓реЗрд╕рдЖрдИрдлрд╝рд┐рд╕реНрдЯреНрд╕: рдЯреНрд░реВ, рдлрд╛рдЗрд▓рдиреЗрдо: ... \ рд╕реНрдерд╛рдИ_ee286bbcf367680ce61a90e506522f92
16: 54: 43.2305499 | рдиреЛрдбред exe | 8208 | SetRenameInformationFile | ... \ рд╕реНрдерд┐рд░_ee286bbcf367680ce61a90e506522f92.103872574 | рдкреНрд░рд╡реЗрд╢ рдЕрд╕реНрд╡реАрдХреГрдд | рд░рд┐рдкреНрд▓реЗрд╕рдЖрдИрдлрд╝рд┐рд╕реНрдЯреНрд╕: рдЯреНрд░реВ, рдлрд╛рдЗрд▓рдиреЗрдо: ... \ рд╕реНрдерд╛рдИ_ee286bbcf367680ce61a90e506522f92

рдЬреИрд╕рд╛ рдХрд┐ рдЖрдк рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рджреЛ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдХ рджреВрд╕рд░реЗ рдХреЗ 1ms рдХреЗ рднреАрддрд░ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд░рд╣реА рд╣реИрдВ рдФрд░ рджреВрд╕рд░рд╛ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ npm / write-file-atomic # 22 writeFile() рдХреЗ async рд╕рдВрд╕реНрдХрд░рдг рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди writeFileSync() рдЕрднреА рднреА рдкреНрд░рднрд╛рд╡рд┐рдд рд╣реИред

рдХреНрдпрд╛ рдпрд╣ рджрд░реНрд╢рд╛рдирд╛ рдПрдХ рд░реЗрдкреНрд░реЛ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реЛрдЧрд╛ рдХрд┐ рд╕рд┐рд░реНрдл write-file-atomic рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ worker-farm рдЙрдкрдпреЛрдЧ рдХрд┐рд╕реА рднреА рддрд░рд╣ рд╕реЗ рд╡рд┐рдлрд▓ рди рд╣реЛ? рдЙрд╕ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рдЬреИрд╕рд╛ рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЬрд╣рд╛рдВ рдареАрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╛ рдпрджрд┐ рдЖрдк рдЬреЗрд╕реНрдЯ рдХреЗ рднреАрддрд░ рдПрдХ рдкрд░реАрдХреНрд╖рдг рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдЬреЛ рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рджрд┐рдЦрд╛рддрд╛ рд╣реИ (рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдПрдкреА рд╣реИ) рддреЛ рдпрд╣ рдПрдХ рд╢реБрд░реБрдЖрдд рднреА рд╣реЛ рд╕рдХрддреА рд╣реИ?

рдореБрдЭреЗ рдпрд╣ рднреА рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдХреНрдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдЦрди рдХреЛ рдлрд┐рд░ рд╕реЗ рд▓реЗрдВ? рдкрд░реАрдХреНрд╖рдг рдлрд┐рд░ рд╕реЗ рдХрд░реЗрдВ? рдкреВрд░реА рдкрд░реАрдХреНрд╖рд╛ рдлрд╝рд╛рдЗрд▓?

рдареАрдХ рд╣реИ, рдореИрдВ рдПрдХ рдФрд░ рд░рд┐рдкреНрд░реЛ рдмрдирд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдБрдЧрд╛ред рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ рдЬреЗрд╕реНрдЯ рдЯреЗрд╕реНрдЯ рдмрдирд╛рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рдХреИрд╢ рдХреЛ рдЕрдХреНрд╖рдо / рд╕рд╛рдлрд╝ рдХрд░рдиреЗ рдФрд░ рдЗрд╕реЗ рд╡рд┐рдлрд▓ рд╣реЛрдиреЗ рддрдХ рдЪрд╛рд▓реВ рд░рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреАред

рдореБрдЭреЗ рдпрд╣ рднреА рдирд┐рд╢реНрдЪрд┐рдд рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рд╣рдо рдХреНрдпрд╛ рд╡реНрдпрд╡рд╣рд╛рд░ рдЪрд╛рд╣рддреЗ рд╣реИрдВред

рдЦреИрд░, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореБрджреНрджрд╛ рддрдм рднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм --no-cache рдЪрд╛рд▓реВ рд╣реЛ, рдХреНрдпреЛрдВрдХрд┐ рдХреИрд╢ рдХреЛ рдЖрдмрд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
рджреВрд╕рд░реЗ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордиреНрд╡рдпрди рдХрд╛рд░реНрд░рд╡рд╛рдИ рдареАрдХ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ - рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ writeFile() рдХреЗ рдмрдЬрд╛рдп writeFileSync() ? рдЗрд╕ рддрд░рд╣ write-file-atomic рдХреЛ рдЕрдкрдиреЗ рдЖрдк рдкреБрдирд░реНрдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП (рдореИрдВ рдкреБрд╖реНрдЯрд┐ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдкрд░реАрдХреНрд╖рдг рдмрдирд╛рдКрдВрдЧрд╛)ред

рдЦреИрд░, рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдореБрджреНрджрд╛ рддрдм рднреА рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬрдм --no-cache рдЪрд╛рд▓реВ рд╣реЛ, рдХреНрдпреЛрдВрдХрд┐ рдХреИрд╢ рдХреЛ рдЖрдмрд╛рдж рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред

рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рдмрд┐рдВрджреБ рд╣реИ, рдФрд░ рдЗрд╕реЗ рдЕрд▓рдЧ рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЗрд╕ рддрд░рд╣ --no-cache рдХрдо рд╕реЗ рдХрдо рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рд╣реЛ рд╕рдХрддрд╛ рд╣реИред

рджреВрд╕рд░реЗ, рдореБрдЭреЗ рдпрдХреАрди рд╣реИ рдХрд┐ рдпрд╣ рд╕рдордиреНрд╡рдпрди рдХрд╛рд░реНрд░рд╡рд╛рдИ рдареАрдХ рд╕реЗ рдлрд┐рд░ рд╕реЗ рдкреНрд░рдпрд╛рд╕ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ - рдпрд╣ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ writeFile() рдХреЗ рдмрдЬрд╛рдп writeFileSync() ?

@ рдЗрд╕реЗ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдирд╣реАрдВ рд╕рд┐рдВрдХ? рдпрдХреАрди рдирд╣реАрдВ рд╣реЛрддрд╛ рдХрд┐ рдХреИрд╕реЗ рддрд░рд╛рдЬреВред рдпрд╛ рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рдФрд░ рд╡рд┐рдЪрд╛рд░ рд╣реИ

  • --no-cache --reset-cache рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ
  • рдЗрди рдСрдкрд░реЗрд╢рдиреЛрдВ рдХреЛ рд╕рд┐рдВрдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛, рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛрдб рдореЗрдВ require рдХреЙрд▓ рдХреЗ рджреМрд░рд╛рди рд╣реЛрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдЗрд╕реЗ рдмрджрд▓ рдирд╣реАрдВ рд╕рдХрддреЗ рд╣реИрдВред

рдпрд╣рд╛рдБ worker-farm рдФрд░ write-file-atomic рд╕рд╛рде рдЕрдиреНрдп рд░реЗрдкреНрд░реЛ рд╣реИ: https://github.com/asapach/write-atomic-issue

рдЕрдм рддрдХ рдХреА рдЦреЛрдЬреЗрдВ: рд╕рд┐рдВрдХ рд╕рдВрд╕реНрдХрд░рдг рдЕрдкреЗрдХреНрд╖рд╛ рдХреЗ рдЕрдиреБрд░реВрдк рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрд╢реНрдЪрд░реНрдпрдЬрдирдХ рд░реВрдк рд╕реЗ async рд╕рдВрд╕реНрдХрд░рдг рднреА рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рд╕рдВрднрд╡рдд: рдПрдХ рд╣реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рдЪрд▓рдиреЗ рдкрд░ рд╣реА рдПрдХ рд░рд┐рдЯреНрд░реА рдХрддрд╛рд░ рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореИрдВ рдЙрд╕реЗ рдмрдирд╛рдП рд░рдЦрдирд╛ рдЪрд╛рд╣реВрдВрдЧрд╛ред

рдирдпрд╛ рдЭрдВрдбрд╛? рдпрд╣ рдПрдХ рдмреЗрд╣рдж рднреНрд░рд╛рдордХ рдирд╛рдо рд╣реИред рдФрд░ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП CI рдкрд░ рдЖрдк рд╢рд╛рдпрдж рд╣реА рдХрднреА рднреА рдХреИрд╢ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╕рд┐рд░реНрдл рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреА рдмрд░реНрдмрд╛рджреА рд╣реИред рдпрд╛ --no-cache рджреМрд░рд╛рди рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдиреЗ рд╡рд╛рд▓реЗ рдПрдХрд▓ рдЯреЗрд╕реНрдЯ рд░рди рдХреЗ рднреАрддрд░ рдХреИрд╢ рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдпрд╣ рдХреЗрд╡рд▓ рдореМрдЬреВрдж рдХреИрд╢ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддрд╛ рд╣реИ?

рдпрд╣рд╛рдБ worker-farm рдФрд░ write-file-atomic рд╕рд╛рде рдЕрдиреНрдп рд░реЗрдкреНрд░реЛ рд╣реИ

рдмрд╣реБрдд рдмрдврд╝рд┐рдпрд╛! рдХреНрдпрд╛ рдЖрдк рд░рд╛рдЗрдЯ-рдлрд╛рдЗрд▓-рдкрд░рдорд╛рдгреБ рдХреЗ рдЦрд┐рд▓рд╛рдл рдПрдХ рдореБрджреНрджрд╛ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВ? рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдлрд┐рдХреНрд╕ рдХреЛ рд╡рд╣рд╛рдВ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП, рдФрд░ рдпрджрд┐ рдирд╣реАрдВ (рд╡реЗ рдПрдХ рдмрд╛рд░ рдореЗрдВ рдХрдИ рдкреНрд░рдХреНрд░рд┐рдпрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ) рддреЛ рд╣рдо рдЕрдкрдиреА рддрд░рдл рд╕реЗ рдлрд┐рд░ рд╕реЗ рд╡рд┐рдЪрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред WDYT?

рдПрдХ рдкреИрдЪ рдореИрдВрдиреЗ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдХреЛрд╢рд┐рд╢ рдХреА рдЬреЛ рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧ рд░рд╣рд╛ рдерд╛, рддреНрд░реБрдЯрд┐ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд░рд╣рд╛ рд╣реИ рдЕрдЧрд░ рдпрд╣ рдЙрд╕реА рд╕рд╛рдордЧреНрд░реА рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдирд╛рдо рдмрджрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рд╕реЗ рдЖрддрд╛ рд╣реИред рдЪреВрдВрдХрд┐ рдпрд╣ рд╕рд┐рд░реНрдл рдПрдХ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХрд╛ рдЕрд░реНрде рд╣реИ 'рд░реЗрд╕' рдЬреАрдд рдЧрдпрд╛, рд╣рдо рдЗрд╕реЗ рдЕрдирджреЗрдЦрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

const cacheWriteErrorSafeToIgnore = (
  e: Error,
  cachePath: Path,
  fileData: string,
) => {
  if (
    e.message &&
    e.message.indexOf('EPERM: operation not permitted, rename') > -1
  ) {
    try {
      const currentContent = fs.readFileSync(cachePath, 'utf8');
      return fileData === currentContent;
    } catch (e) {
    }
  }
  return false;
};

@SimenB , рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рдореИрдВ рдПрдХ рд╕рдорд╕реНрдпрд╛ рджрд░реНрдЬ рдХрд░реВрдБрдЧрд╛ред

@cpojer , рдХреНрдпрд╛ рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЪреЗрддрд╛рд╡рдиреА рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рдЧрд▓рд╛ / рдЕрдирджреЗрдЦрд╛ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ? рддрд╛рддреНрдкрд░реНрдп рдпрд╣ рд╣реИ рдХрд┐ рдлрд╝рд╛рдЗрд▓ рдкрд╣рд▓реЗ рд╣реА рд▓рд┐рдЦреА рдЬрд╛ рдЪреБрдХреА рд╣реИ рдФрд░ рдХреЛрдИ рднреА рдбреЗрдЯрд╛ рдЦреЛрдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рд┐рдПред

рдЕрдкрд╕реНрдЯреНрд░реАрдо рд╕рдорд╕реНрдпрд╛: npm / рд░рд╛рдЗрдЯ-рдлрд╛рдЗрд▓-рдПрдЯреЙрдорд┐рдХ # 28

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХрд╛ рдЕрд░реНрде рд╣реИ "рдирд╛рдо рдмрджрд▓рдирд╛" рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдПрдХ рдкрд░рдорд╛рдгреБ рдСрдкрд░реЗрд╢рди рдирд╣реАрдВ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ write-file-atomic рджреНрд╡рд╛рд░рд╛ рдХреА рдЧрдИ рдзрд╛рд░рдгрд╛ рдХреЛ рддреЛрдбрд╝рддрд╛ рд╣реИред рдЬрдм рддрдХ рд╡рд┐рдВрдбреЛрдЬ рдПрдкреАрдЖрдИ рд╕реНрддрд░ рдкрд░ рдПрдХ рдзреНрд╡рдЬ рд╕рдХреНрд╖рдо рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рдЗрд╕рдХрд╛ рдорддрд▓рдм рдпрд╣ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╡рд┐рдВрдбреЛрдЬ рдкрд░ рдкрд░рдорд╛рдгреБ рд▓рд┐рдЦрдирд╛ / рдирд╛рдо рдмрджрд▓рдирд╛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдЕрд╕рдВрднрд╡ рд╣реИред

@jwbay рдЖрдкрдХрд╛ рд╕рдорд╛рдзрд╛рди рдореБрдЭреЗ рдЙрдЪрд┐рдд рд▓рдЧрддрд╛ рд╣реИ! I'd indexOf рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп, рдореИрдВ e.code === 'EPERM' рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ (рдЕрдзрд┐рдХ рдордЬрдмреВрдд, рдХрд┐рд╕реА рдЕрдиреНрдп рд╕рдВрджреЗрд╢ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ рдХрд░рддрд╛)ред рдореБрдЭреЗ рдирд╣реАрдВ рд▓рдЧрддрд╛ рдХрд┐ рдореВрд▓реНрдп рдХреЛ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╣рдореЗрдВ рдлрд┐рд░ рд╕реЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рдкрдврд╝рдирд╛ рдЪрд╛рд╣рд┐рдП, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рдВрдЧрд╛рдорд┐рддрд┐ рдореБрджреНрджреЛрдВ рдХреЛ рдкреЗрд╢ рдХрд░ рд╕рдХрддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдпрджрд┐ рдлрд╝рд╛рдЗрд▓ рдЙрд╕реА рд╕рдордп рдПрдХ рдФрд░ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЦреА рдЬрд╛ рд░рд╣реА рд╣реИ)ред рдХреНрдпрд╛ рдЖрдк рдкреАрдЖрд░ рднреЗрдЬрдирд╛ рдЪрд╛рд╣реЗрдВрдЧреЗ, рдХреГрдкрдпрд╛?

рдореИрдВ рдПрдХ рдкреАрдЖрд░ рдкрд░ write-file-atomic "рдХреА рддрд░реНрдЬ рдкрд░ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛" рдЕрдЧрд░ рд╣рдореЗрдВ рдПрдХ рдлрд╛рдЗрд▓ рд╕рд┐рдВрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдХрддрд╛рд░ рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА async рд▓рд┐рдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдмрд╛рд╣рд░ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ "(рд╢рд╛рдпрдж рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдЪрд╛рд▓реВ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП)ред рд▓реЗрдХрд┐рди рдЕрдЧрд░ рд╣рдо рдЬреЗрд╕реНрдЯ рд╕реНрддрд░ рдкрд░ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЦреБрд╢ рд╣реИрдВ, рддреЛ рдореИрдВ рдЬрд▓реНрджреА рдирд╣реАрдВ рдХрд░реВрдВрдЧрд╛ред cc @jeanlauliac

рдореИрдВ рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкреАрдЖрд░-рдлрд╛рдЗрд▓-рдПрдЯреЙрдорд┐рдХ рдХреЗ рд▓рд┐рдП "рдЕрдЧрд░ рд╣рдо рдПрдХ рдлрд╝рд╛рдЗрд▓ рд╕рд┐рдВрдХ рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХрддрд╛рд░ рдореЗрдВ рд╣реИ async рд▓рд┐рдЦрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ, рдЬрдорд╛рдирдд рдХреЗ рд▓рд┐рдП" рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХрд╛рдо рд╢реБрд░реВ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдерд╛ (рд╢рд╛рдпрдж рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рд╛рде рд╡реНрдпрд╡рд╣рд╛рд░ рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░реЗрдВ)ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░реНрдХ (рд╕реНрдерд╛рдиреАрдп рдХрддрд╛рд░) рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦрдиреЗ (рдирд╛рдо рдмрджрд▓рдиреЗ) рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреА рд╣реИрдВред

рдПрдХ рдмрд╛рд░ рдФрд░ рд╕рднреА рдХреЗ рд▓рд┐рдП рд╕рдорд╕рд╛рдордпрд┐рдХ рдореБрджреНрджреЛрдВ рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рд╣рдореЗрдВ рдкреБрдирд░реНрд╡рд┐рдЪрд╛рд░ рдХрд░рдирд╛ рдкрдбрд╝ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдХреИрд╢рд┐рдВрдЧ рдХреИрд╕реЗ рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдХреЛ рдПрдХреНрд╕реЗрд╕ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдПрдХ рдПрдХрд▓ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╣рдо рдХрд┐рд╕реА рдкреНрд░рдХрд╛рд░ рдХреЗ рдЖрдИрдкреАрд╕реА рдкрд░ рд╕рдВрд╡рд╛рдж рдХрд░рддреЗ рд╣реИрдВред рдореМрдЬреВрджрд╛ рдХреА / рд╡реИрд▓реНрдпреВ рд╕реНрдЯреЛрд░ рд╕рд┐рд╕реНрдЯрдо рдЖрд╕рд╛рди рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ memcached ред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рддрд░реНрдХ (рд╕реНрдерд╛рдиреАрдп рдХрддрд╛рд░) рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рдареАрдХ рдирд╣реАрдВ рд╣реЛрдЧреА, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЬреНрдпрд╛рджрд╛рддрд░ рддрдм рд╣реЛрддрд╛ рд╣реИ рдЬрдм рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдХреНрд░рд┐рдпрд╛рдПрдВ рдПрдХ рд╣реА рдлрд╝рд╛рдЗрд▓ рдХреЛ рд▓рд┐рдЦрдиреЗ (рдирд╛рдо рдмрджрд▓рдиреЗ) рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреА рд╣реИрдВред

рдЖрд╣, рдореИрдВ рд╢рд╛рдпрдж рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рдЧрд▓рдд рд╕рдордЭрд╛ред рдЬрд┐рд╕ рддрд░рд╣ рд╕реЗ рдореИрдВрдиреЗ рдЗрд╕реЗ рдкрдврд╝рд╛ рд╣реИ, рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдПрдХ рдХрддрд╛рд░рдмрджреНрдз рддрдВрддреНрд░ рд╣реИ рдЬреЛ async рдЕрдиреБрд░реЛрдзреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрджрд┐ рдЖрдк рд╕рд┐рдВрдХ рдЕрдиреБрд░реЛрдзреЛрдВ рдореЗрдВ рдорд┐рд╢реНрд░рдг рдХрд░рддреЗ рд╣реИрдВ рддреЛ _ рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЖрдк рдЯрдХрд░рд╛рд╡ рдкреНрд░рд╛рдкреНрдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред

рдореЗрд░реЗ рдКрдкрд░ рд╕рдВрджрд░реНрднрд┐рдд рдкреБрд▓ рдЕрдиреБрд░реЛрдз рдХреЛ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдХрдо рд╕реЗ рдХрдо рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдерд╛!

@mekwall, рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╡реЗ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ rename() рдореЗрдВ рдХреА async рд╕рдВрд╕реНрдХрд░рдг writeFile() , рдФрд░ рдпрд╣ рдЕрднреА рднреА рдЕрдкрдиреЗ рдкрд░реАрдХреНрд╖рдг рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИ: https://github.com/asapach/write-atomic-issueред рдХреНрдпрд╛ рдЖрдк рдХреГрдкрдпрд╛ рдореЗрд░реЗ рд░реЗрдкреНрд░реЛ рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ? рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХрд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдорд╛рдкреНрдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

@asapach рдХреНрдпрд╛ рдЖрдкрдиреЗ рдореЗрд░реЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЗ рд╕рд╛рде рдкреНрд░рдпрд╛рд╕ рдХрд┐рдпрд╛? рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдХрдИ рдмрд╛рд░ рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рдореБрдЭреЗ рд╣рд░ рдмрд╛рд░ рдмрд┐рдирд╛ рдорд┐рд▓реЗ рд╣реБрдП рдЕрдкрдиреЗ рдмрджрд▓рд╛рд╡реЛрдВ рдХреЗ рд╕рд╛рде EPERM: operation not permitted, rename рдорд┐рд▓рд╛ред

@mekwall , yep, рдЕрднреА рднреА рдЖрдкрдХреЗ рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ (рд╣рд╛рд▓рд╛рдВрдХрд┐ async-ly) рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рд░рд╣рд╛ рд╣реИред (рдиреАрдЪреЗ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред)

рдпрд╛ рдмрд▓реНрдХрд┐ рддрдХрдиреАрдХреА рд░реВрдк рд╕реЗ рдпрд╣ рд╡рд┐рдлрд▓ рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рд╕рд┐рдВрдХ рдкреНрд░рд╡рд╛рд╣ рдмрд╛рдзрд┐рдд рдирд╣реАрдВ рд╣реЛрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рдХрдВрд╕реЛрд▓ рдЕрднреА рднреА EPERM рддреНрд░реБрдЯрд┐рдпреЛрдВ рд╕реЗ рдЕрдЯреЗ рдкрдбрд╝реЗ рд╣реИрдВред

@asapach рдореБрдЭреЗ рд╡рд╣ рд╕рдорд╕реНрдпрд╛ рдорд┐рд▓реА рдЬреЛ рдЖрдк рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдпрд╣ graceful-fs рдкреЙрд▓реАрдлрд┐рд▓ рдореЗрдВ рд╣реИред рдореИрдВрдиреЗ рдЗрд╕ PR рдореЗрдВ рдПрдХ рдлрд┐рдХреНрд╕ рдкреЛрд╕реНрдЯ рдХрд┐рдпрд╛ рд╣реИ: https://github.com/isaacs/node-graceful-fs/pull/119

@mekwall , рд╣рд╛рдБ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╕рдВрдмреЛрдзрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдЧрддрд╛ рд╣реИ - рджреЛрдиреЛрдВ рд╕рд┐рдВрдХ рдФрд░ async рд╕рдВрд╕реНрдХрд░рдгреЛрдВ рдореЗрдВ рдХреЛрдИ рдФрд░ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рд╣реИред
рдЕрдм рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдЕрд╕реНрдерд╛рдпреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╣рдЯрд╛рдпрд╛ рдирд╣реАрдВ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ fs.unlinkSync(tmpfile) рдХрднреА рдирд╣реАрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ: https://github.com/npm/write-file-atomic/pull/29/files#diff -168726d96b3ce427e7fedce31bb0bcR198

@asapach рдореИрдВрдиреЗ graceful-fs рдирд╛рдо рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдирд▓рд┐рдВрдХ рдЬреЛрдбрд╝ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдЕрдЧрд░ рдпрд╣ рдЬрд╛рдиреЗ рдХрд╛ рд╕рд╣реА рддрд░реАрдХрд╛ рд╣реИред Afaik fs.rename MoveFile рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЙрд╕реЗ рд╕реНрд░реЛрдд рдХреЛ рдЧрдВрддрд╡реНрдп рдкрд░ рдХреЙрдкреА рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рд╕реНрд░реЛрдд рдХреЛ рдХреЗрд╡рд▓ рдирд╛рдо рдмрджрд▓рдирд╛ рдЪрд╛рд╣рд┐рдП рдФрд░ рд╕реНрд░реЛрдд рдФрд░ рдЧрдВрддрд╡реНрдп рдПрдХ рд╣реА рд╕рдордп рдореЗрдВ рдХрднреА рднреА рдореМрдЬреВрдж рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@ рдореАрдХрд╛рд╡рд▓ , рдЬреЛ рдереЛрдбрд╝реА рдорджрдж рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╛рдорд▓реЛрдВ рдореЗрдВ рдЕрдЧрд░ рдХрд╛рд░реНрдпрдХрд░реНрддрд╛ рдХреЛ рдЬрд▓реНрджреА рд╕рдорд╛рдкреНрдд рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдХреНрдпреЛрдВрдХрд┐ рд╕рднреА рдХрд╛рдо рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ), рдХреБрдЫ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рд╕рд╛рдл рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рд╕рдлрд╛рдИ рдХрд╛ рдЗрдВрддрдЬрд╛рд░ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред Async рд╕рдВрд╕реНрдХрд░рдг рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

@ рд╕рдорд╛рдкрдХ рдпрд╣ рдЙрдореНрдореАрдж рдХреЗ

@ рдЖрд╕рдкреИрдХ рдореБрдЭреЗ рдПрд╣рд╕рд╛рд╕ рд╣реБрдЖ рдХрд┐ рдореЗрд░реЗ рдкреАрдЖрд░ write-file-atomic рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ fs.renameSync graceful-fs рдХреЛ рдПрдХ рд╣реА рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд╕рд╛рде fs.rename рдЬреЛрдбрд╝рдХрд░ рдПрдХ рдФрд░ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд▓рд┐рдпрд╛ред рд▓реЗрдХрд┐рди рдЕрд╡рд░реБрджреНрдзред рдпрд╣ рдЖрдкрдХреЗ рдЯреЗрд╕реНрдЯ рд╡рд░реНрдХ рдХреЛ рдЙрдореНрдореАрдж рдХреЗ рдореБрддрд╛рдмрд┐рдХ рд╣реА рдмрдирд╛рддрд╛ рд╣реИ!

@mekwall , рдзрдиреНрдпрд╡рд╛рдж, рдореИрдВрдиреЗ рдЕрдкрдиреЗ
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдиреАрдЪреЗ рдХреА рдУрд░ рдореБрдЭреЗ рд╕рд┐рдВрдХ рдХреЗ рд▓рд┐рдП рд╕реАрдкреАрдпреВ рдФрд░ рдбрд┐рд╕реНрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдмрдврд╝рд╛ рд╣реБрдЖ рджрд┐рдЦрд╛рдИ рджреЗ рд░рд╣рд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╢рд╛рдпрдж рдЕрдкреЗрдХреНрд╖рд┐рдд рд╣реИред

рдЗрд╕реЗ рдЪреБрдирдиреЗ рдФрд░ рдЗрд╕реЗ рдареАрдХ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рд╕реЗ рд▓реЛрдЧреЛрдВ рдХреЛ рдзрдиреНрдпрд╡рд╛рджред рдмрд╣реБрдд рд╕рд░рд╛рд╣рдирд╛ рдХреА! тЭдя╕П рдЙрдореНрдореАрдж рд╣реИ рдХрд┐ рд╕реБрд╢реЛрднрд┐рдд-рдПрдлрдПрд╕ рдореЗрдВ рд╕реБрдзрд╛рд░ рд╕рд╣реА рд╣реИ, рдФрд░ рдпрд╣ рдЬрд╛рд░реА рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред

@SimenB рдЖрдкрдХрд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИ! рд╣рдо рдХрд╛рдо рдкрд░ рдЗрд╕ рдмрд╛рдд рд╕реЗ рджреБрдЦреА рд╣реИрдВ рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдЕрдкрдиреА рдЯреАрдо рджреНрд╡рд╛рд░рд╛ рдЗрд╕рдХреА рдЬрд╛рдВрдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕рдордп рдорд┐рд▓рд╛ред рдкрд░рд┐рд╡рд░реНрддрди рдмрд╣реБрдд рд╕рд╛рд░реЗ рдкреИрдХреЗрдЬреЛрдВ рдХреЛ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд░реЗрдВрдЧреЗ, рдЗрд╕рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЗрд╕реЗ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рдиреЗ рдореЗрдВ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдордп рд▓рдЧреЗрдЧрд╛: /

рдХрд┐рд╕реА рднреА рд╡рд┐рдЪрд╛рд░ рдЬрдм рдпрд╣ рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдПрдХ рд░рд┐рд▓реАрдЬ рдХреЗ рд▓рд┐рдП рдХрд░ рджреЗрдЧрд╛?

@cpojer рдХреНрдпрд╛ рдЖрдк рдХреБрдЫ рдФрд░ рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдмрдВрдж рдХреНрдпреЛрдВ рд╣реИ? рдХреНрдпрд╛ рдХреЛрдИ рдлрд╝рд┐рдХреНрд╕ рдкреНрд░рджрд╛рди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ? рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рднреА рдпрд╣ рдореБрджреНрджрд╛ рд╣реИ

рдХреНрд╖рдорд╛рдпрд╛рдЪрдирд╛, рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЕрднреА рддрдХ рд╕реБрд╢реЛрднрд┐рдд- fs рдореЗрдВ рдЙрддрд░рд╛ рдирд╣реАрдВ рд╣реИ :(

рдХреНрдпрд╛ рдХрдИ рд▓реЛрдЧ рдЗрд╕ рдмрд╛рдд рдХреА рдкреБрд╖реНрдЯрд┐ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ https://github.com/isaacs/node-graceful-fs/pull/119 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЙрдирдХреЗ рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ?

рдЖрдк рдпрд╛рд░реНрди рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрд╛рдВрдЯрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, https://yarnpkg.com/en/docs/selective-version-resolutions рджреЗрдЦреЗрдВ , рдЬреЛ рдЖрдкрдХреЛ рд╕реАрдЖрдИ рдЖрджрд┐ рдХреЛ рдлрд┐рдХреНрд╕ рддреИрдирд╛рдд рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрдиреА рдЪрд╛рд╣рд┐рдПред

рдЬреИрд╕реЗ

{
  "resolutions": {
    "graceful-fs": "mekwall/node-graceful-fs#a10aa576f771d7cf3dfaee523f2e02d6eb11a89f"
  }
}

@SimenB рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдХрд░рддрд╛ рд╣реИ, рдХрдо рд╕реЗ рдХрдо It

+1 рдореЗрд░реЗ рд▓рд┐рдП рднреАред

@SimenB рдиреЗ рднреА рдореЗрд░рд╛ рдореБрджреНрджрд╛ рдареАрдХ рдХрд░ рджрд┐рдпрд╛ рд╣реИ рдФрд░ рдореИрдВ рдЕрдм рд╡рд┐рдВрдбреЛрдЬрд╝ рдкрд░ jest 22 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реВрдВред (рд╣рдо рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ 20 рдкрд░ рдЕрдЯрдХ рдЧрдП рдереЗ)ред

рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ: рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдЗрд╕рдиреЗ рдореЗрд░реЗ рджреЗрд╡ рд▓реИрдкрдЯреЙрдк рдкрд░ рдХрд╛рдо рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рдкрд░ рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ред рдпрд╣ рдпрд╛рд░реНрди 1.2.1 рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рд╢рд╛рдпрдж рдЗрд╕реАрд▓рд┐рдП?

[16:47:55][Step 5/8]     jest: failed to read cache file: D:/TeamCity/buildAgent2/temp/buildTmp/jest/jest-transform-cache-c39254d365b4bcb2c90f133d4b359d91-56a1804d8d831b3401a35a7e81857f3b/7e/rafPolyfill_7e7a83ed3f2680ba9aec0e45f59ade5d
[16:47:55][Step 5/8]     Failure message: EPERM: operation not permitted, open 'D:\TeamCity\buildAgent2\temp\buildTmp\jest\jest-transform-cache-c39254d365b4bcb2c90f133d4b359d91-56a1804d8d831b3401a35a7e81857f3b\7e\rafPolyfill_7e7a83ed3f2680ba9aec0e45f59ade5d'
[16:47:55][Step 5/8]       
[16:47:55][Step 5/8]       at readCacheFile (node_modules/jest-runtime/build/script_transformer.js:465:60)

рдпрд╛рд░реНрди 1.0.0 рдкрд░реНрдпрд╛рдкреНрдд рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдПрдХ рдХреЛрд╢рд┐рд╢ рдЙрдиреНрдирдпрди рдХреЗ рд▓рд╛рдпрдХ рд╣реИ

рдмрд╕ рд╕рдВрдХрд▓реНрдк рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рднреА рдореЗрд░реЗ рд▓рд┐рдП рд╡рд┐рдлрд▓ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдореЗрд░реЗ рдкрд╛рд╕ рджреЛрдиреЛрдВ рдФрд░ EPERM рдЙрд▓реНрд▓рдВрдШрди рд╣реИрдВ:

    jest: failed to read cache file: C:/Users/dev/AppData/Local/Temp/jest/jest-transform-cache-857f905b2da01d52a9d1d17b6772ea4a-3a91587e29d4fef23c6e0cf16b2f5679/7d/index_7d0afc82f0b29ec31c4b5f296cbdee74
    Failure message: ENOENT: no such file or directory, open 'C:\Users\dev\AppData\Local\Temp\jest\jest-transform-cache-857f905b2da01d52a9d1d17b6772ea4a-3a91587e29d4fef23c6e0cf16b2f5679\7d\index_7d0afc82f0b29ec31c4b5f296cbdee74'

      at Object.fs.openSync (../fs.js:653:18)
      at Object.fs.readFileSync (../fs.js:554:33)

рддрдерд╛

    jest: failed to read cache file: C:/Users/dev/AppData/Local/Temp/jest/jest-transform-cache-857f905b2da01d52a9d1d17b6772ea4a-3a91587e29d4fef23c6e0cf16b2f5679/c4/std_pb_c403e6e7645c904896b66f44a3e43606
    Failure message: EPERM: operation not permitted, open 'C:\Users\dev\AppData\Local\Temp\jest\jest-transform-cache-857f905b2da01d52a9d1d17b6772ea4a-3a91587e29d4fef23c6e0cf16b2f5679\c4\std_pb_c403e6e7645c904896b66f44a3e43606'

      at Object.fs.openSync (../fs.js:653:18)
      at Object.fs.readFileSync (../fs.js:554:33)

@mreishus рдХреНрдпрд╛ рдЖрдкрдХрд╛ рдмрд┐рд▓реНрдб рд╕рд░реНрд╡рд░ рд╡рд┐рдВрдбреЛрдЬ рдЪрд▓рд╛рддрд╛ рд╣реИ? рдХреНрдпреЛрдВрдХрд┐ graceful-fs рдХреЗ рдлрд╝рд┐рдХреНрд╕реЗрд╕ рдХреЗрд╡рд▓ Windows рдХреЛ рд▓рдХреНрд╖рд┐рдд рдХрд░реЗрдВрдЧреЗ, рд▓реЗрдХрд┐рди рдпрд╣ рд▓рд┐рдирдХреНрд╕-рдЖрдзрд╛рд░рд┐рдд OS рдкрд░ рдирд╣реАрдВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

@mekwall рд╣рд╛рдБ, рд╡рд┐рдВрдбреЛрдЬрд╝ - рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд┐рдВрдбреЛрдЬрд╝ рд╕рд░реНрд╡рд░ 2012 R2 рд╣реИ

рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдПрдХ рдкреНрд░рдореБрдЦ рдореБрджреНрджрд╛ рд╣реИ рдФрд░ рдирд╡рдВрдмрд░ 2016 рд╕реЗ graceful-fs рд╕рд╛рде рдХреБрдЫ рднреА рдирд╣реАрдВ рд╣реБрдЖ рд╣реИ рдЬреЛ рдореИрдВ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдХрд╛рдлреА рдирд┐рд░рд╛рд╢рд╛рд╡рд╛рджреА рд╣реЛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдкреНрд░рджрд╛рди рдХреА рдЧрдИ @mekwall рдХреЛ рдЬрд▓реНрдж рд╣реА рдХрд┐рд╕реА рднреА рд╕рдордп рд╡рд┐рд▓рдп рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдХреНрдпрд╛ рдХреЛрдИ рдЕрд╕реНрдерд╛рдпреА рд╕рдорд╛рдзрд╛рди рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рд╣рдо -i рдзреНрд╡рдЬ рдФрд░ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдХреНрдпрд╛ --runInBand рдЖрдкрдХреЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ @frenic?

рдпрд╣ -i рдФрд░ рд╣рд╛рдВ, рдпрд╣ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рд▓реЗрдХрд┐рди рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдмрдбрд╝реА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд▓рдВрдмреЗ рд╕рдордп рдореЗрдВ рдЯрд┐рдХрд╛рдК рдирд╣реАрдВ рд╣реИред

рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╣рдо рдЕрдкрдирд╛ рдЦреБрдж рдХрд╛ рдХрд╛рдВрдЯрд╛ рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдпрд╣ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдареАрдХ рдХрд╛рдо рдирд╣реАрдВ рд▓рдЧрддрд╛ рд╣реИ

рдореИрдВ рдПрдХ рд╣реА рд╕реНрдерд┐рддрд┐ рдХреЗ рд╕рд╛рде рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, --runInBand рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред

рдореИрдВрдиреЗ Jest рдХреЗ рдирд╡реАрдирддрдо рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд╕рд╛рде graceful-fs рдУрд╡рд░рд░рд╛рдЗрдб рдХреА рдЬрд╛рдБрдЪ рдХреА рд╣реИ рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдпрд╣ рдЕрдм рдордЬрд╝рдмреВрддреА рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдореИрдВрдиреЗ рдЕрдВрддрд┐рдо рдмрд╛рд░ рдЗрд╕рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдерд╛ред рдЕрднреА рднреА рдЧреИрд░-рд╢реВрдиреНрдп рдореМрдХрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдмрдбрд╝реЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдкрд░ рдПрдХ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдЪрд▓рддрд╛ рд╣реИред

рдЗрд╕ рдзрд╛рдЧреЗ рд╕реЗ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ yarn рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдПрдХ рд░рд┐рдЬрд╝реЙрд▓реНрдпреВрд╢рди рдорд┐рд▓рд╛ред рдХреНрдпрд╛ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп npm рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХрд╛ рдХреЛрдИ рд╕рдВрдХрд▓реНрдк рд╣реИ?

рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЕрднреА рддрдХ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рднрд╛рдЧреНрдп рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдкреИрдХреЗрдЬ рдореЗрдВ graceful-fs рдХрд╛ рдкреИрдЪ рд╕рдВрд╕реНрдХрд░рдг рдЬреЛрдбрд╝ рд░рд╣рд╛ рд╣реИред рд╣рдорд╛рд░реЗ рд▓рд┐рдП npm рдФрд░ рдпрд╛рд░реНрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред

"graceful-fs": "https://github.com/mekwall/node-graceful-fs.git#patch-1",

рдирдорд╕реНрддреЗ,

рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рд╣рдо рдпрд╣ рддреНрд░реБрдЯрд┐ рдХреЗрд╡рд▓ рдЬреЗрдирдХреАрдВрд╕ рд╕реЗ рдЪрд▓рд╛рддреЗ рд╣реИрдВ, рди рдХрд┐ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдЪрд▓рд╛рдиреЗ рдкрд░ (рд╕рдорд╛рди рдорд╢реАрди / рдлрд╝реЛрд▓реНрдбрд░ рдЖрджрд┐ рдкрд░ рднреА)
@jsheetzati рдХрд╛ рд╕рдорд╛рдзрд╛рди рд╣рдорд╛рд░реЗ рд▓рд┐рдП рднреА рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реИ (

рдзрдиреНрдпрд╡рд╛рдж,
рдореЛрд░

рдЬреЗрдирдХрд┐рдиреНрд╕ рд╕реЗ рдЬреЗрд╕реНрдЯ рдЪрд▓рд╛рдиреЗ рдкрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдпрд╣ рдореБрджреНрджрд╛ рднреА рд╣реИред --runInBand рд╡рд┐рдХрд▓реНрдк рдПрдХрд▓ рдиреМрдХрд░реА рдХреЗ рдирд┐рд╖реНрдкрд╛рджрди рдХреЗ рджреМрд░рд╛рди рд╡рд┐рдлрд▓рддрд╛ рд╕реЗ рдмрдЪрдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИ рд▓реЗрдХрд┐рди рд╕рдорд╛рдирд╛рдВрддрд░ рдореЗрдВ рдХрдИ рдмрд┐рд▓реНрдб рдЪрд▓рдиреЗ рдкрд░ рднреА рдЬреЗрд╕реНрдЯ рд╡рд┐рдлрд▓ рд░рд╣рддрд╛ рд╣реИред
рд╡рд░реНрдХрдЕрд░рд╛рдЙрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рд╣рдо рд▓реЙрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рдВрд╕рд╛рдзрди рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдХреЗрд╡рд▓ jest рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ --runInBand рд╡рд┐рдХрд▓реНрдк рд░рдЦрддреЗ рд╣реБрдП рдЙрд╕реА рд╕рдордп рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рдПред
рдЖрд╢рд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреАред

@nyrkovalex рд╣рдо рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЬреЗрд╕реНрдЯ рдХреЗ рдХреИрд╢ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╡рд┐рдХрд▓реНрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдХреИрд╢ рдХреЛ рдХрд╛рд░реНрдпрдХреНрд╖реЗрддреНрд░реЛрдВ рдореЗрдВ рд╕рд╛рдЭрд╛ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред

рд╣рдо рдРрд╕рд╛ рдЬреЗрд╕реНрдЯ рдкреНрд░реАрд╕реЗрдЯ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░рдХреЗ рдХрд░рддреЗ рд╣реИрдВ рдЬреЛ cacheDirectory: '<rootDir>/.jest-cache' рд╕реЗрдЯ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╕рднреА рдкреИрдХреЗрдЬ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдпрджрд┐ рдРрд╕рд╛ рд╣реЛ рддреЛ .jest-cache рд╕реЗ .gitignore рдЬреЛрдбрд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред

рдЙрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╣рдо 16 рдирд┐рд╖реНрдкрд╛рджрдирдХрд░реНрддрд╛ рдкреНрд░рддрд┐ рдЬреЗрдирдХрд┐рдВрд╕ рдПрдЬреЗрдВрдЯ рдореЗрдВ рд╡реИрд╢реНрд╡рд┐рдХ рдЬреЗрд╕реНрдЯ рдХреИрд╢ рд╕рд╛рдЭрд╛ рдХрд░рдиреЗ рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдХрдИ рдореБрджреНрджреЛрдВ рдкрд░ рдЪрд▓реЗрдВрдЧреЗред рд▓реЙрдХ рдХрд░рдиреЗ рдпреЛрдЧреНрдп рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ

@ aescobar1991 рдпрд╣ рд╡рд┐рдХрд▓реНрдк рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдПрдХ рдмреЗрд╣рддрд░ рд╕рдорд╛рдзрд╛рди рд╣реИ, рд╣рдо рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдкрд░ рд╡рд┐рдЪрд╛рд░ рдХрд░реЗрдВрдЧреЗред
рдПрдХ рдЯрд┐рдк рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!

рдирдорд╕реНрддреЗ,

рд╣рдо npm рдХреЛ рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЧреНрд░реЗрдбреЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ (рдРрд╕рд╛ рдХреНрдпреЛрдВ рди рдХрд░реЗрдВ :)) рдФрд░ рдЬреЗрдирдХрд┐рдВрд╕ рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдПрдХ рд╣рддреНрдпрд╛рд░рд╛ рд╣реИред
рд╣рдордиреЗ рдХреЛрд╢рд┐рд╢ рдХреА:

  1. рдХреИрд╢ рдХреЛ рд╡реИрд╢реНрд╡рд┐рдХ рдХреИрд╢ рдХреЗ рдмрдЬрд╛рдп рд╕реНрдерд╛рдиреАрдп рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рд╕реЗрдЯ рдХрд░рдирд╛
  2. рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ --runInBand
  3. рдПрдЬреЗрдВрдЯ рдкрд░ рдХреЗрд╡рд▓ рдПрдХ рд╣реА рдХрд╛рдо рдЪрд▓ рд░рд╣рд╛ рд╣реИ- рдХреЛрдИ рд╕рдорд╛рдирд╛рдВрддрд░ рдиреМрдХрд░реА рдирд╣реАрдВ
  4. рд░рдирд┐рдВрдЧ рдЯреЗрд╕реНрдЯ -рдореИрдХреНрд╕-рд╡рд░реНрдХрд░ 1 (рдФрд░ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ - рд╕рдорд╛рдирд╛рдВрддрд░)

рд╕рднреА рдПрдХ рд╣реА рддреНрд░реБрдЯрд┐ рдХреЗ рд╕рд╛рде рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВред
рдПрдХрдорд╛рддреНрд░ рд╕рдорд╛рдзрд╛рди рдЬреЛ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рд╡рд╣ @jsheetzati рджреНрд╡рд╛рд░рд╛ рдПрдХ рд╣реИ - рдХрд╛рд╢ рдпрд╣ рдФрдкрдЪрд╛рд░рд┐рдХ рд░реВрдк рд╕реЗ рддрдп рд╣реЛ рдЬрд╛рддрд╛ред

рд╣рдо рд╢рд╛рдпрдж рдЙрд╕ рдлрд┐рдХреНрд╕ рдХреЛ рдХрд╛рдВрдЯреЗ рдФрд░ рдкреНрд░рдХрд╛рд╢рд┐рдд рдХрд░ рд╕рдХрддреЗ рдереЗ

рд╡рд╣ рддреЛ рдЬрдмрд░реНрджрд╕реНрдд рд╣реЛрдЧрд╛...

рдореБрдЭреЗ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рдмрд╣реБрдд рд╣реИ рдФрд░ рд╕реБрд╢реЛрднрд┐рдд рдПрдлрдПрд╕ рдХреЗ рд▓рд┐рдП рдкреИрдЪ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд┐рдпрд╛ред рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЗрд╕ рд╕реБрдзрд╛рд░ рдХреА рд╕рд░рд╛рд╣рдирд╛ рдХрд░реВрдВрдЧрд╛ред

рд╕реБрд╢реЛрднрд┐рдд-рдПрдлрдПрд╕ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рдорд╛рдзрд╛рди рдХреЗ рд░реВрдк рдореЗрдВ, рдХреНрдпрд╛ рдЖрдк рдмрд╕ рдкреНрд░рддреНрдпреЗрдХ рд╢реНрд░рдорд┐рдХ рдкреНрд░рдХреНрд░рд┐рдпрд╛ / рдзрд╛рдЧрд╛ рдирд╣реАрдВ рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╣ рджреМрдбрд╝ рдХреА рд╕реНрдерд┐рддрд┐ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреИрд╢ рдбрд╛рдпрд░реЗрдХреНрдЯрд░реА рд╣реИ?

рдпрд╣ рд╢рд╛рдпрдж рдзреАрдорд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдореЗрдВ рдЕрдкрдиреЗ CI рд╕рд░реНрд╡рд░ рдкрд░ --runInBand рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рдпрд╣ рдЕрдзрд┐рдХ рдЦрд░рд╛рдм рд╣реИред

рдЕрдЧрд░ рдХреЛрдИ рдореБрдЭреЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рд╣реА рдлрд╝рд╛рдЗрд▓реЛрдВ рдкрд░ рдЗрдВрдЧрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рдкреИрдЪ рд▓рд┐рдЦрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рднреА рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВред рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрдард┐рди рд╕рдордп рд╣реИ рдЬреЛ рдЬрд╕реНрдЯ рдХреЗ рд╕реНрд░реЛрдд рдХреЛ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░ рд░рд╣рд╛ рд╣реИред

рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рдХреНрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдорд╣реАрдиреЛрдВ рд╕реЗ рд╕рдВрднрд╡рддрдГ рдХреБрдЫ рд╕рдкреНрддрд╛рд╣ рд╣реЛ рдЧрдП рд╣реИрдВ рдФрд░ рдореИрдВрдиреЗ рдЕрдм рддрдХ рд╡рд┐рдлрд▓рддрд╛ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИред рд╣рдо рдереЛрдбрд╝реА рджреЗрд░ рдХреЗ рд▓рд┐рдП реиреи.рек.реи рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рдФрд░ рд╣рд╛рд▓ рд╣реА рдореЗрдВ реиреи.рек.рек рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╣рдордиреЗ рдХрдИ рдЕрдиреНрдп рдкреИрдХреЗрдЬ рднреА рдЕрдкрдбреЗрдЯ рдХрд┐рдП рд╣реИрдВред

рдмрд╕ рдореЗрдВ рдЪрд┐рдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП - рдореИрдВ рдПрдХ рд╡рд┐рдВрдбреЛ Jenkins CI рд╕рд░реНрд╡рд░ рдкрд░ jest 23.6 рдХреЗ рд╕рд╛рде рдпрд╣ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдВред

  • --runInBand рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдкрд░реАрдХреНрд╖рдг рдХреЗ рд╕рдордп рдХреЛ рджреЛрдЧреБрдирд╛ рдХрд░ рджреЗрддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рдорд╣рд╛рди рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЪреВрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдкрд░реАрдХреНрд╖рдг рдкреБрд╢ рд╕реЗ рдкрд╣рд▓реЗ рдЪрд▓рддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдореИрдВ рдЕрдкрдиреА рдЯреАрдо рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рд╕реБрдкрд░-рдЙрджрд╛рд╕ рдХрд┐рдП рдмрд┐рдирд╛ рдЗрд╕реЗ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛
  • @jsheetzati (https://github.com/facebook/jest/issues/4444#issuecomment-370533355) рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЕрдиреБрд╕рд╛рд░ package.json рдореЗрдВ рдЧреНрд░реЗрд╕рдлреБрд▓ -рдПрдлрдПрд╕ рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдПрдХ рд╣реИрдХ рдХрд╛ рдПрдХ рд╕рд╛ рд╣реИред

рдЪреВрдБрдХрд┐ graceful-fs рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╣реБрдд рдХреБрдЫ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реИ (https://github.com/isaacs/node-graceful-fs/pull/131 рдиреЗ рдкрд┐рдЫрд▓реЗ рд╕рд╛рд▓ рдЬреБрд▓рд╛рдИ рд╕реЗ рдХрд╛рд░реНрд░рд╡рд╛рдИ рдирд╣реАрдВ рджреЗрдЦреА рд╣реИ), рд╢рд╛рдпрдж рдпрд╣ рдХрд╛рдВрдЯрд╛ рдмрдирд╛рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ ? рдореИрдВрдиреЗ рд╡рд╣рд╛рдВ рдПрдХ рдирд╛рдЧ рдЯрд┐рдкреНрдкрдгреА рдЬреЛрдбрд╝реА рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВ рдпрд╣ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдХрд┐рд╕реА рдХреЛ рдЕрдЪрд╛рдирдХ рдЗрд╕реЗ рдЫрд╛рдВрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдХреВрдж рдХрд░)):

рдореИрдВ рдПрдХ рд╣реА рдореБрджреНрджрд╛ рд░рд╣рд╛ рд╣реВрдБ, рд▓реЗрдХрд┐рди рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдЕрд▓рдЧ рд╣реИ
Failure message: EBADF: bad file descriptor, close

jest: failed to cache transform results in: C:/agent/_work/_temp/jest/jest-transform-cache-2a12bf9796741cb06fb97a276aa09712-7d718cda2d798ae78eb741b3feff799e/7b/test-setup_7bdb1937d8dbbf5088142bc21e74a530
2019-01-24T13:44:55.5496091Z     Failure message: EBADF: bad file descriptor, close

рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ --runInBand рдХреЗ рд╕рд╛рде рд░рдирд┐рдВрдЧ рдЬреЗрд╕реНрдЯ рдкрд╣рд▓реА рдмрд╛рд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╣рд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдПрдХ рдФрд░ рд░рди рдХреЗ рдмрд╛рдж рдпрд╣ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЗ рдмрд┐рдирд╛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рд╣реЛрддрд╛ рд╣реИред

TFS рдмрд┐рд▓реНрдб рдХреЗ рднрд╛рдЧ рдХреЗ рд░реВрдк рдореЗрдВ рд╡рд┐рдВрдбреЛрдЬ 10 рдПрдВрдЯрд░рдкреНрд░рд╛рдЗрдЬ VM рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реИред

@EthhanSankin рдХреНрдпрд╛ рдЖрдк рд▓рд┐рдВрдХ рдХрд┐рдП рдЧрдП

рдореИрдВ graceful-fs рд▓рд┐рдП рдПрдХ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдЬреЛ рдЗрди рдореБрджреНрджреЛрдВ рдХреЛ рд╣рд▓ рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдпрд╣ рд╡рд░реНрддрдорд╛рди рдореЗрдВ рдЕрд▓реНрдлрд╛ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХреБрдЫ рд╢реБрд░реБрдЖрддреА рдЕрдкрдирд╛рдиреЗ рд╡рд╛рд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдпрд╣ рдмрд╣реБрдд рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛: https://github.com/mekwall/normalized-fs

рд░рд╛рдЗрдЯ-рдлрд╛рдЗрд▓-рдПрдЯреЙрдорд┐рдХ рдХреЗ рдкреБрд░рд╛рдиреЗ рд╕рдВрд╕реНрдХрд░рдг рдкрд░ рд▓реМрдЯрдиреЗ рд╕реЗ рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред

@moizgh рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рддрдХ?

@moizgh рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рд╕реЗ рдХрд┐рд╕ рд╕рдВрд╕реНрдХрд░рдг рддрдХ?

реи.рек.реи рд╕реЗ реи.рей.реж

@iarna рд▓рдЧрддрд╛ рд╣реИ рдЬреИрд╕реЗ рд╕реЛрдо рдкреНрд░рддрд┐рдЧрдорди рд╢реБрд░реВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛ред

рдЗрд╕ рдореБрджреНрджреЗ рдореЗрдВ рднреА рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рдХрд┐рд╕реА рднреА рдмреЗрд╣рддрд░ / рд╕реНрдерд╛рдпреА рдлрд┐рдХреНрд╕ рдореЗрдВ рдЕрдВрддрд░реНрджреГрд╖реНрдЯрд┐?

рдпрд╣ рдкрд┐рдЫрд▓реЗ рдХреБрдЫ рдорд╣реАрдиреЛрдВ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдлрд┐рд░ рд╕реЗ рд╢реБрд░реВ рд╣реБрдЖ - рд╡рд┐рдВрдбреЛрдЬрд╝ - рдмрд╣реБрдд рд░реБрдХ-рд░реБрдХ рдХрд░ред

рд▓рд┐рдЦрдиреЗ-рдлрд╝рд╛рдЗрд▓-рдкрд░рдорд╛рдгреБ рдЕрдм рд╕реБрд╢реЛрднрд┐рдд- fs рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ - рд╢рд╛рдпрдж рдЗрд╕рдХреЗ рд╕рд╛рде рдХреБрдЫ рдХрд░рдирд╛ рд╣реИ?

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

ianp picture ianp  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

stephenlautier picture stephenlautier  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

StephanBijzitter picture StephanBijzitter  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

withinboredom picture withinboredom  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

paularmstrong picture paularmstrong  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ