рдЗрд╕ рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рд╕реЗ рдПрдХ рдЙрджрд╛рд╣рд░рдг рдЪрд▓рд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдореБрдЭреЗ рдирд┐рдореНрди рддреНрд░реБрдЯрд┐ рдорд┐рд▓ рд░рд╣реА рд╣реИ:
https://github.com/facebook/jest/tree/master/examples/async
FAIL __tests__/user-test.js
тЧП Test suite failed to run
ReferenceError: regeneratorRuntime is not defined
at Object.<anonymous> (__tests__/user-test.js:16:48)
at process._tickCallback (internal/process/next_tick.js:103:7)
Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 1.495s
Ran all test suites.
рдиреЛрдб 6.10 рдФрд░ рдиреЛрдб 7.7.4 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рдорд╛рди рд╕рдорд╕реНрдпрд╛ рдХреЛ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
git clone https://github.com/facebook/jest jest
cd jest/examples/async
npm install
npm run test
рдпрд╣ рд╣рдорд╛рд░реЗ рд╕реАрдЖрдИ рдпрд╛ рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рд░рд┐рдкреНрд░реЛ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣реЛ рд╕рдХрддрд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ npm рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХреБрдЫ рдЧрдбрд╝рдмрдбрд╝ рд╣реЛ?
@cpojer
рдзрдиреНрдпрд╡рд╛рдж рдХреНрд░рд┐рд╕ред
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдбреЙрдХрдЯрд░ рдХрдВрдЯреЗрдирд░ рд░рдирд┐рдВрдЧ рдиреЛрдб рд╕реЗ рдкреБрди: рдкреНрд░рд╕реНрддреБрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рд╕реЗ
https://hub.docker.com/_/node/
рдиреАрдЪреЗ рд╡реЗ рдЪрд░рдг рджрд┐рдП рдЧрдП рд╣реИрдВ рдЬреЛ рддреНрд░реБрдЯрд┐ рдХреА рдУрд░ рд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВ:
# from local machine (also tested in vagrant 1.9.2 running ubuntu/trusty64)
docker pull node:latest
docker run --rm -it node bash
# from inside the container (docker version 17.03.0-ce, node version 7.7.2)
git clone https://github.com/facebook/jest /jest
cd /jest
# as per instructions from https://github.com/facebook/jest/tree/master/examples
npm install
cd examples/async
npm install
npm test
рдХреНрдпрд╛ рдореИрдВ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдХреЛ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдореЗрдВ рд╕рд╣реА рд╣реВрдБ?
рдХреНрдпрд╛ рдпрд╣ рд╕рдВрднрд╡ рд╣реИ рдХрд┐ рдореБрдЭреЗ рдХреБрдЫ рд╡реИрд╢реНрд╡рд┐рдХ рдЖрд╡рд╢реНрдпрдХрддрд╛рдПрдВ рдпрд╛рдж рдЖ рд░рд╣реА рд╣реИрдВ рдЬреЛ рдЗрд╕ рдкрд░рд┐рджреГрд╢реНрдп рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░ рджреЗрдВрдЧреА?
рдХреНрдпрд╛ рдореИрдВ рдЖрдкрдХреЛ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рдЬрд╛рдирдХрд╛рд░реА рджреЗ рд╕рдХрддрд╛ рд╣реВрдВ?
рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВ:
рдореИрдВрдиреЗ рдкрд╛рдпрд╛ рдХрд┐ рдЙрджрд╛рд╣рд░рдг рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдкреБрдирд░реНрдЬрдирди-рд░рдирдЯрд╛рдЗрдо рдХреЛ рдмреЗрдмреЗрд▓-рдкреЙрд▓реАрдлрд┐рд▓ рдХреЗ рд╕рд╛рде рджреЗрд╡рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдмрджрд▓рддреЗ рд╣реИрдВред
рдореИрдВ рдпрд╣ рдорд╛рдирдиреЗ рдЬрд╛ рд░рд╣рд╛ рд╣реВрдВ рдХрд┐ рдорд╛рд╕реНрдЯрд░ рдореЗрдВ рдЬреЗрд╕реНрдЯ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкреВрд░реНрд╡ рдореЙрдбреНрдпреВрд▓ рдХреЗ рд╕рд╛рде рд╕рдВрдЧрдд рд╣реИ, рд▓реЗрдХрд┐рди рдЙрджрд╛рд╣рд░рдг рдорд╛рд╕реНрдЯрд░ рдХреЛрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХреЗ рдмрдЬрд╛рдп рдирд╡реАрдирддрдо рд░рд┐рд▓реАрдЬ рдХреЛ рдЦреАрдВрдЪрддрд╛ рд╣реИ рдЬрд┐рд╕реЗ рдЕрднреА рднреА рдмреЗрдмреЗрд▓-рдкреЙрд▓реАрдлрд┐рд▓ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛ рд╕рдХрддреА рд╣реИред
рдореИрдВ рдЯреНрд░реИрд╡рд┐рд╕ рд╕реАрдЖрдИ рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░ рд░рд╣рд╛ рд╣реВрдБ: https://travis-ci.org/okonet/lint-staged/jobs/212179781
рдкрд░реАрдХреНрд╖рдг рд╕реНрдерд╛рдиреАрдп рд╕реНрддрд░ рдкрд░ рдареАрдХ рдЪрд▓ рд░рд╣реЗ рд╣реИрдВ рд▓реЗрдХрд┐рди рд╕реАрдЖрдИ рдкрд░ рдирд╣реАрдВ
рдореИрдВ рдмрд╕ рдЗрд╕ рдореБрджреНрджреЗ рдкрд░ рдЯрдХрд░рд╛ рдЧрдпрд╛!
@mpontus @okonet рдЖрдк jest@next
рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд╣рд╛рдВ рдпрд╣ рддрдп рд╣реИ рдпрд╛ рдЕрдиреНрдпрдерд╛ рдЖрдкрдХреЛ babel-polyfill
рдЗрдВрд╕реНрдЯреЙрд▓ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдЬреЗрд╕реНрдЯ babel-polyfill
(рдФрд░ рдЕрднреА рднреА рдЗрд╕реЗ 19.0.2 рдореЗрдВ рдХрд░рддрд╛ рд╣реИ) рдХреЛ рд╕реНрд╡рддрдГ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдЪреВрдВрдХрд┐ рдпрд╣ рдореЗрдореЛрд░реА рд▓реАрдХ рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рд╣рдо рдХреЗрд╡рд▓ regenerator-runtime
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд▓реЗ рдЧрдП, рдЬреЛ рд╣рдорд╛рд░реЗ рдЯреНрд░рд╛рдВрдЬрд┐рдЯрд┐рд╡ рдбрд┐рдкреЛ рдХреЗ рд╕рд╛рде рдЬрд╣рд╛рдЬ рдХрд░рддрд╛ рд╣реИ (рдЗрд╕рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдХреЗ рдмрд╛рдж рд╕реЗ) v20 рдпрджрд┐ рдЖрдк npm>=3 рдпрд╛ рдпрд╛рд░реНрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЛ async/рдкреНрд░рддреАрдХреНрд╖рд╛ рд╕рдорд░реНрдерди рдХреЗ рд▓рд┐рдП рдХреБрдЫ рднреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ)ред
рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╣рдордиреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рд╕реЗ babel-polyfill
рдХреЛ рдорд┐рдЯрд╛ рджрд┐рдпрд╛, рд▓реЗрдХрд┐рди рдЗрд╕ рдЕрдВрддрд░ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рднреВрд▓ рдЧрдП https://github.com/facebook/jest/pull/2755 19.0.2
рдФрд░ рдПрдХ рд░реЛрд▓ рдЖрдЙрдЯ рдирд╣реАрдВ рдХрд┐рдпрд╛ рддрдм рд╕реЗ рдЕрдЪреНрдЫреА рд░рд┐рд▓реАрдЬ (рдХреЗрд╡рд▓ jest@next
рдЯреИрдЧ)ред
рдЕрд╕реБрд╡рд┐рдзрд╛ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ!
@thymikee рдореИрдВ regenerator-runtime
рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреИрд╕рд╛ рдХрд┐ рдбреЙрдХреНрд╕ рдореЗрдВ рдПрдХ рдЯреНрд░рд╛рдВрд╕рдлреЙрд░реНрдо рдХреЗ рд╕рд╛рде рд╡рд░реНрдгрд┐рдд рд╣реИ?
рдореИрдВ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдХрд┐рд╕реА рднреА .babelrc
рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рдФрд░ рдПрдХ рдмреЗрдмрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд▓реЛрдб рдХрд░рддрд╛ рд╣реВрдВ рдЬреЛ рдиреАрдЪреЗ рдХреА рддрд░рд╣ рд╡реЗрдмрдкреИрдХ рдФрд░ рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рджреЛрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╕рд╛рдЭрд╛ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
jest.config.js
...
'transform': {
'^.+\\.js$': '<rootDir>/config/jest.transform.js'
}
...
рдордЬрд╝рд╛рдХ.рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо.рдЬреЗрдПрд╕
var babelConfig = require('./babel.config')
module.exports = require('babel-jest').createTransformer(babelConfig)
рдПрдХ рдкреБрд░рд╛рдиреЗ рдореБрджреНрджреЗ рдХреЛ рдЬрдЧрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд╖рдорд╛ рдХрд░реЗрдВ: рдореИрдВ рдЬреЗрд╕реНрдЯ 20.0.4 рдХреЗ рд╕рд╛рде рдПрдХ рд╣реА рдореБрджреНрджреЗ рдкрд░ рдЪрд▓ рд░рд╣рд╛ рд╣реВрдВ, рдФрд░ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЗрди рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдХреЛ рд╣рдЯрд╛ рдирд╣реАрдВ рд╕рдХрддрд╛ред рдореИрдВ рдЬреЛ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реВрдВ рдЙрд╕рд╕реЗ:
babel-preset-env
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рд╕рд▓рд╛рд╣ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди async/рдкреНрд░рддреАрдХреНрд╖рд╛ рдЙрджрд╛рд╣рд░рдг рдЗрд╕рдХреЗ рдмрдЬрд╛рдп okonet
, рд░реАрдЬреЗрдирд░реЗрдЯрд░ рд░рдирдЯрд╛рдЗрдо рд╕рд░реНрдХрд┐рд▓рд╕реАрдЖрдИ рдкрд░ --runInBand
рд╕рд╛рде рд╕реНрдерд╛рдиреАрдп рд░реВрдк рд╕реЗ рдореЗрд░реА рд╕реАрдЖрдИ рдкрд░реАрдХреНрд╖рдг рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдирд╛ рдпрд╣ рдЗрдВрдЧрд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рд╕рдорд╕реНрдпрд╛ рд╣реИредregenerator-runtime
рдХреЛ рд╕реАрдзреЗ рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдпрджрд┐ рдЖрдк рдПрдХ рдкреБрд░рд╛рдиреЗ рдкреИрдХреЗрдЬ рдореИрдиреЗрдЬрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рдЬреЛ рдХрд┐ CI рдкрд░ рд╣реЛрдиреЗ рдХреА рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИредрдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рдерд╛, babel-polyfill
рд╕реАрдзреЗ jest.init.js
(рдЬреЗрд╕реНрдЯ рд╕реЗрдЯрдЕрдк рдлрд╝рд╛рдЗрд▓) рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред
...
"setupFiles": [
"<rootDir>/jest.init.js"
],
...
/// jest.init.js
import Enzyme from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
import 'babel-polyfill';
рдЯрдХреНрдХрд░ рдХреЗ рд▓рд┐рдП рдЦреЗрдж рд╣реИ! рд▓реЗрдХрд┐рди рдореИрдВ рд╕рд╛рдЭрд╛ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред рдЗрд╕реЗ рдореЗрд░реЗ рд╕рд╛рдорд╛рдиреНрдп рдкреНрд▓рдЧрдЗрдиреНрд╕ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
[
"transform-runtime",
{
"helpers": false,
"polyfill": false,
"regenerator": true
}
]
рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХрд┐ рдпрд╣ рдЗрд╕реЗ рд╕рдВрднрд╛рд▓рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рддрд░реАрдХрд╛ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ред
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдореЗрдВ "ReferenceError: regeneratorRuntime рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ" рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
npm install --save-dev @babel/plugin-transform-runtime
рдлрд┐рд░ .babelrc рдореЗрдВ (рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛):
{
"env": {
"test": {
"plugins": ["@babel/plugin-transform-runtime"]
}
}
}
рдореБрдЭреЗ рдПрдХ рд╣реА рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝ рд░рд╣рд╛ рдерд╛,
babel-polyfill
рд╕реАрдзреЗjest.init.js
(рдЬреЗрд╕реНрдЯ рд╕реЗрдЯрдЕрдк рдлрд╝рд╛рдЗрд▓) рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдореЗрд░реЗ рд▓рд┐рдП рд╕рдорд╕реНрдпрд╛ рд╣рд▓ рд╣реЛ рдЧрдИред... "setupFiles": [ "<rootDir>/jest.init.js" ], ...
/// jest.init.js import Enzyme from 'enzyme'; import Adapter from 'enzyme-adapter-react-16'; import 'babel-polyfill';
рдореИрдВрдиреЗ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ jest.init.js
рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рд▓реЗрдХрд┐рди рдЗрд╕рдиреЗ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЕрдЬреАрдм рддрд░рд╣ рд╕реЗ рддреЛрдбрд╝ рджрд┐рдпрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рдЕрдкрд░рд┐рднрд╛рд╖рд┐рдд рдЬрдирд░реЗрдЯрд░ рддреНрд░реБрдЯрд┐ рдирд╣реАрдВ рдереА, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдкрд╛рд╕ рдмрд╣реБрдд рд╕рд╛рд░реА рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдереАрдВ рдЬреЛ рдореЗрд░реЗ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдкрд╣рд▓реЗ рдирд╣реАрдВ рдереАрдВ, рдЬреИрд╕реЗ рд▓рд╛рдкрддрд╛ рдШрдЯрдХ рдЖрдпрд╛рдд рдпрд╛ рд▓рд╛рдкрддрд╛ рдкреНрд░реЙрдкреНрд╕ред
рдореЗрд░реЗ jest.conf.js
рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐ рд╣реИ:
setupFiles: ['<rootDir>/test/unit/setup']
рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ jest.init.js
(рдЬреЛ рдореМрдЬреВрдж рдирд╣реАрдВ рдерд╛) рдХреЗ рдмрдЬрд╛рдп setup.js
рдореЗрдВ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛:
import Vue from 'vue'
import '@babel/polyfill';
Vue.config.productionTip = false
Vue.config.silent = true
_рдкреЙрд▓реАрдлрд┐рд▓ рдЖрдпрд╛рдд рд▓рд╛рдЗрди рдХреЛ рдЫреЛрдбрд╝рдХрд░, 3 рдЕрдиреНрдп рд▓рд╛рдЗрдиреЗрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдереАрдВ рдЬрдм рдореИрдВрдиреЗ рдЗрд╕реЗ рдЦреЛрд▓рд╛ред_
рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдХреЛ setup.js
рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдирд╛ рдХрд╛рдо рдХрд┐рдпрд╛ рдЬрдмрдХрд┐ рдЗрд╕реЗ jest.init.js
рдореЗрдВ рдЖрдпрд╛рдд рдХрд░рдиреЗ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдЪрд▓рд╛ (рдореИрдВрдиреЗ рд╕реЗрдЯрдЕрдкрдлрд╝рд╛рдЗрд▓ рдкрде рдмрджрд▓ рджрд┐рдпрд╛)ред
рдЬреЗрд╕реНрдЯ рдореЗрдВ "ReferenceError: regeneratorRuntime рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ" рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдиреЛрдб рд╡рд░реНрддрдорд╛рди рдЬреЛрдбрд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
{
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
}
}
]
]
}
рдЬреЗрд╕реНрдЯ рдореЗрдВ "ReferenceError: regeneratorRuntime рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ" рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд▓рдХреНрд╖реНрдп рдиреЛрдб рд╡рд░реНрддрдорд╛рди рдЬреЛрдбрд╝рдирд╛ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
{ "presets": [ [ "@babel/preset-env", { "targets": { "node": "current" } } ] ] }
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдмреЗрдмрд▓реАрдлрд┐рдВрдЧ рдореЗрдВ рдорджрдж рдирд╣реАрдВ рдХрд░реЗрдЧрд╛, рдореЗрд░рд╛ рдХреЛрдб рд▓рдХреНрд╖реНрдп рдиреЛрдб рд╡рд░реНрддрдорд╛рди рдХреЗ рд╕рд╛рде рд╕рдВрдХрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдпрд╣ рдмрд┐рд▓реНрдХреБрд▓ рд╡реИрд╕рд╛ рд╣реА рджрд┐рдЦреЗрдЧрд╛ (ES6)ред рдЯреЗрд╕реНрдЯ рдЪрд▓ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ, рдмрдврд╝рд┐рдпрд╛, рд▓реЗрдХрд┐рди рдХреЛрдИ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдирд╣реАрдВ: рдкреА
рдпрд╣рд╛рдБ рдореЗрд░реЗ package.json рдХрд╛ рдПрдХ рдЕрдВрд╢ рд╣реИ, рдпрд╣ рдЕрдм рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
"babel": {
"presets": [
[
"@babel/preset-env",
{
"targets": {
"node": "current"
}
}
],
"@babel/preset-react"
],
"plugins": [
"component-identification",
"@babel/plugin-proposal-class-properties",
[
"module-resolver",
{
"root": [
"./src"
]
}
]
]
},
рдореЗрд░реЗ рд▓рд┐рдП рд╕рд╛рдорд╛рдиреНрдп рд╡рд┐рдиреНрдпрд╛рд╕ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреНрд░реАрд╕реЗрдЯ-рдПрдирд╡реА рд▓рдХреНрд╖реНрдп рд╣реЛрдирд╛ рдкрд░реНрдпрд╛рдкреНрдд рдирд╣реАрдВ рдерд╛ред
рдореБрдЭреЗ node
рддрд╣рдд env.test
рддрд╣рдд рд▓рдХреНрд╖реНрдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рдкрдбрд╝рд╛ред
{
'presets': [
[
'@babel/preset-env',
{
'targets': {
'chrome': 61,
'node': 8,
'electron': '2.0.9'
},
}
],
'@babel/typescript',
'@babel/preset-react'
],
'env': {
'test': {
'presets': [
[
'@babel/preset-env',
{
'targets': {
'node': 8, // <- ADDED
},
}
],
'@babel/typescript',
]
}
}
}
рдХреЗрд╡рд▓ рдПрдХ рдЪреАрдЬ рдЬреЛ рдореБрдЭреЗ рдХрд░рдиреА рдереА, рд╡рд╣ рд╣реИ @AoDev рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдП рдЧрдП рд▓рдХреНрд╖реНрдп рдХреЛ рдмреЗрдмреЗрд▓ рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ред рдХрд╣реАрдВ рдФрд░ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд▓рдХреНрд╖реНрдп рдирд╣реАрдВред
рд╡рд┐рд╢реНрд╡ рд╕реНрддрд░ рдкрд░ рдкреБрдирд░реНрдпреЛрдЬреА-рд░рдирдЯрд╛рдЗрдо рдХреЛ рдЖрдпрд╛рдд рдФрд░ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдпрд╣ рдХрд░рддреЗ рд╣реИрдВ:
require('regenerator-runtime/runtime');
рдЙрди рд▓реЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдЬреЛ рдХреЗрд╡рд▓ рдЖрд╡рд╢реНрдпрдХ рдЪреАрдЬрд╝ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдФрд░ рдордЬрд╝рд╛рдХ рдХреЗ рд▓рд┐рдП рд╕рднреА рдмреЗрдмреЗрд▓ рдкреЙрд▓реАрдлрд╝рд┐рд▓ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд╕рд╛рде рдЧрдбрд╝рдмрдбрд╝ рдирд╣реАрдВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
рдЬреЗрд╕реНрдЯ 24 рдХреЛ рдкреЗрд╢ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рдмреНрд▓реЙрдЧ рдкреЛрд╕реНрдЯ рдореЗрдВ рдЗрд╕рдХрд╛ рдЙрд▓реНрд▓реЗрдЦ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЕрдЧрд░ рд▓реЛрдЧ рдЗрд╕реЗ рдпрд╛рдж рдХрд░рддреЗ рд╣реИрдВ: https://jestjs.io/blog/2019/01/25/jest-24-refreshing-polished-typescript-friendly#break -changesред рдЖрдкрдХреЛ рдмреЗрдмреЗрд▓ рдХреЛ рдареАрдХ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рдХрд┐рд╕реА рднреА рдХреЛрдб рдХреЛ рдмрджрд▓рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкреАрдЖрд░ рд╕реЗ рдпрд╣ рдЯрд┐рдкреНрдкрдгреА рджреЗрдЦреЗрдВ: https://github.com/facebook/jest/pull/7595#issuecomment -454486373
@ghengeveld рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рд╣реИ, рдзрдиреНрдпрд╡рд╛рдж
рдореЗрд░реЗ рд▓рд┐рдП рдЗрд╕реЗ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рди рдХреЗрд╡рд▓ рдкреБрдирд░реНрдпреЛрдЬреА рдЬреЛрдбрд╝рдирд╛ рдерд╛, рдмрд▓реНрдХрд┐ рдореЗрд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рд░рдирдЯрд╛рдЗрдо рднреА рдЬреЛрдбрд╝рдирд╛ рдерд╛:
'globals': {
'vue-jest': {
'babelConfig': {
'plugins': [
'@babel/plugin-transform-regenerator',
'@babel/plugin-transform-runtime',
],
'presets': [['@babel/preset-env', { 'modules': false }]],
'env': {
'test': {
'presets': [
['@babel/preset-env', { 'targets': { 'node': 'current' } }],
],
},
},
},
},
},
@рдпрд╣рд╛рдБ рдХрд┐рд╕реА рднреА рдкреНрд░рдпрд╛рд╕ рдиреЗ рдореЗрд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рдореБрдЭреЗ рдЕрднреА рднреА рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЯреЗрд╕реНрдЯ рд╕реВрдЯ рдЪрд▓рдиреЗ рдореЗрдВ рд╡рд┐рдлрд▓ рд░рд╣рд╛ рд╣реИ
ReferenceError: regeneratorRuntime is not defined
рдпрд╣ рдореЗрд░рд╛ рдореЗрд░рд╛ рдкреИрдХреЗрдЬ рд╣реИредjson
"рджреЗрд╡ рдирд┐рд░реНрднрд░рддрд╛": {
"@ рдмреЗрдмреЗрд▓/рдХреЛрд░": "^7.6.2",
"@ рдмреЗрдмреЗрд▓/рдкреНрд▓рдЧрдЗрди-рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо-рд░реАрдЬреЗрдирд░реЗрдЯрд░": "^7.8.7",
"@ рдмреЗрдмреЗрд▓/рд░рдирдЯрд╛рдЗрдо": "^7.9.6",
"@ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛-рдореВрд▓-рд╕рдореБрджрд╛рдп/рдПрд╕реНрд▓рд┐рдВрдЯ-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди": "^0.0.5",
"рдмреЗрдмреЗрд▓-рдПрд╕реНрд▓рд┐рдВрдЯ": "^10.0.1",
"рдмреЗрдмреЗрд▓-рдЬреЗрд╕реНрдЯ": "^24.9.0",
"рдмреЗрдмреЗрд▓-рдкреНрд▓рдЧрдЗрди-рдореЙрдбреНрдпреВрд▓-рд░рд┐рдЬрд╝реЙрд▓реНрд╡рд░": "^3.1.3",
"рдмреЗрдмреЗрд▓-рдкреНрд▓рдЧрдЗрди-рдЯреНрд░рд╛рдВрд╕рдлрд╝реЙрд░реНрдо-рд░рдирдЯрд╛рдЗрдо": "^6.23.0",
"рдбрд┐рдЯреЙрдХреНрд╕": "^16.5.1",
.рдмреЗрдмреЗрд▓рдЖрд░рд╕реА
рдЬрдм рднреА рдореИрдВ рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреБрдЫ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдБ, рдореЗрд░реА рдРрдк рдлрд╝рд╛рдЗрд▓реЗрдВ рдирд╣реАрдВ рдЪрд▓реЗрдВрдЧреАред рдореБрдЭреЗ рдЕрдкрдирд╛ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛рд╢реАрд▓ рдореВрд▓ рдРрдк рдЪрд▓рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд╛рдкрд╕ рд╣рдЯрд╛рдирд╛ рд╣реЛрдЧрд╛
рдПрдХ рд╣реА рдореБрджреНрджреЗ рдХрд╛ рд╕рд╛рдордирд╛ рдХрд░рдирд╛ рдкрдбрд╝рд╛ред рддрд╛рдЬрд╝рд╛ jest
(26.6.3), рд╕рд╛рджрд╛ async рдкрд░реАрдХреНрд╖рдг рдФрд░ рдпрд╣ ..
рдПрдХ рдврд╛рдВрдЪреЗ рдХреЗ рд▓рд┐рдП рдЬреЛ рдЦреБрдж рдХреЛ "рд░рдордгреАрдп" рдХреЗ рд░реВрдк рдореЗрдВ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдирд╣реАрдВ рд╣реИред
рдореБрдЭреЗ рдмреЗрдмреЗрд▓ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди, рдкреНрд▓рдЧрдЗрдиреНрд╕ рдЖрджрд┐ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдкрд░реЗрд╢рд╛рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреНрдпреЛрдВ рд╣реИ?
рдпрд╣ рд▓реАрдХ рд╕реЗ рд╣рдЯрдХрд░ рдХрд╛рдо рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛?
рдЕрджреНрдпрддрди рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА babel.config.js рдерд╛ рд▓реЗрдХрд┐рди рдЧрд╛рдпрдм рдерд╛
targets: {
node: 'current'
}
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдпрд╣ рдореЗрд░реЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдореЗрдВ "ReferenceError: regeneratorRuntime рдкрд░рд┐рднрд╛рд╖рд┐рдд рдирд╣реАрдВ рд╣реИ" рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ:
рдлрд┐рд░ .babelrc рдореЗрдВ (рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛):