Babel 6 + TS 환경에 Stylelint를 잡으면 Jest가 통과하지 못함
3928 단어 babelstylelintJestTypeScript
v7.0.0
가 마침내 공식 출시 되었습니다만, 지금 자신이 하고 있는 프로젝트에서는 번역 있어 좀 더 6 계를 사용할 예정입니다.그렇게 하면, 경률로 node_modules 디렉토리를 삭제해 재작성하면 Jest 가 통과하지 않게 되어 곤란했으므로, 대략적인 원인과 해결 방법을 메모합니다.
전제
[email protected]
사용 일어난 일
Jest가 다음과 같은 에러를 토하게 되어, TypeScript의 테스트를 패스 할 수 없게 되어 버렸다.
FAIL path/to/test.spec.ts
● Test suite failed to run
TypeError: Cannot read property 'bindings' of null
at Scope.moveBindingTo (node_modules/@babel/core/node_modules/@babel/traverse/lib/scope/index.js:867:13)
at BlockScoping.updateScopeInfo (node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:364:17)
at BlockScoping.run (node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:330:12)
at PluginPass.BlockStatementSwitchStatementProgram (node_modules/babel-plugin-transform-es2015-block-scoping/lib/index.js:70:24)
at newFn (node_modules/@babel/core/node_modules/@babel/traverse/lib/visitors.js:193:21)
at NodePath._call (node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:53:20)
at NodePath.call (node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:40:17)
at NodePath.visit (node_modules/@babel/core/node_modules/@babel/traverse/lib/path/context.js:88:12)
at TraversalContext.visitQueue (node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:118:16)
at TraversalContext.visitSingle (node_modules/@babel/core/node_modules/@babel/traverse/lib/context.js:90:19)
node_modules/@babel/core
원인
stylelint
를 버전 고정하지 않고 설치하여 [email protected]
를 설치했습니다. [email protected]
의 종속 패키지 인 [email protected]
의 종속성으로 인해 Babel 7 (@babel/core
)이 설치되었습니다.node_modules
에서 동시에 존재할 수 있다. [email protected]
) 는 Babel 의 6 에서도 7 에서도 움직이지만, 7 가 있으면 먼저 그쪽을 참조한다.여기에서 먼저는 쫓고 있지 않습니다만.
대응
우선 대응으로 Babel 7이 설치되지 않는 Stylelint 버전을 지정했습니다.
.babelrc
는 [email protected]
에 의존하지 않고 Babel 7 은 들어오지 않기 때문에 이것을 채택했습니다.미래
postcss-jsx
의 이 굉장한 바베리 문제는 ts-jest
로 대응되는 것 같습니다 roadmap to next version (probably `23.10.1`) · Issue #697 · kulshekhar/ts-jest
생각한 것 (추기)
이것은
[email protected]
까지 지워야 일어나지 않은 문제로는…
Reference
이 문제에 관하여(Babel 6 + TS 환경에 Stylelint를 잡으면 Jest가 통과하지 못함), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/shohei_ot/items/c4b325b838403e34bd5e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)