"이러한 로더의 결과를 처리하기 위해서는 추가 로더가 필요할 수도 있다."
나는 현재 ReactJs를 위한 국가 관리 도서관을 짓기 위해 노력하고 있다.그러나 React 프로젝트에 구현하는 즉시(로 생성된)create-react-app
() 이 오류를 삭제하기 시작한다.
Failed to compile.
path/to/agile/dist/runtime.js 116:104
Module parse failed: Unexpected token (116:104)
File was processed with these loaders:
* ./node_modules/babel-loader/lib/index.js
You may need an additional loader to handle the result of these loaders.
| if (subscriptionContainer instanceof sub_1.CallbackContainer) subscriptionContainer.callback(); // If Component based subscription call the updateMethod which every framework has to define
|
> if (subscriptionContainer instanceof sub_1.ComponentContainer) if (this.agileInstance.integration?.updateMethod) this.agileInstance.integration?.updateMethod(subscriptionContainer.component, Runtime.formatChangedPropKeys(subscriptionContainer));
| }); // Log Job
|
내가 오류에서 언급된 코드의 강조된 선을 언급하면, 그것은 다른 지점으로 뛰어올라 거기서 불평을 한다.그러나 그것은 구문 오류가 될 수 없다. 왜냐하면 그렇게 되면 TypeScript도 IDE에서 불평할 것이기 때문이다.
툴의 작동 방식:시작 시 프레임워크를 정의해야 한다. 이 경우 반응.그런 다음, 상태를 만들고 후크를 통해 반응 기능 구성요소에 이 상태를 등록할 수 있다.국가를 React 구성 요소에 바인딩하는 데 사용되는 후크는 단순히 콜백을 생성하여 (변형을 통해) 리렌더를 트리거한다.useReducer
) 및 이 콜백을 구독 국가에 할당하십시오.
체크아웃에 대해 자세히 알고 싶으시면 https://github.com/agile-ts/agile를 방문하십시오.
종속성:
타사 상태 관리 라이브러리:
"dependencies": {
"@types/chai": "^4.2.12",
"@types/mocha": "^8.0.2",
"chai": "^4.2.0",
"eslint-config-prettier": "^6.11.0",
"mocha": "^8.1.1",
"prettier": "2.0.5",
"ts-node": "^8.10.2",
"tsc-watch": "^4.1.0",
"tslib": "^2.0.0",
"typescript": "^3.9.7"
}
- 노드:
v14.8.0
프로젝트 대응:
"dependencies": {
"@testing-library/jest-dom": "^4.2.4",
"@testing-library/react": "^9.3.2",
"@testing-library/user-event": "^7.1.2",
"@types/jest": "^24.0.0",
"@types/node": "^12.0.0",
"@types/react": "^16.9.0",
"@types/react-dom": "^16.9.0",
"react": "^16.13.1",
"react-dom": "^16.13.1",
"react-scripts": "3.4.3",
"typescript": "~3.7.2",
"agile-framework": "file:../../"
},
- 반응:
16.13.1
- NPM:
6.14.7
문제는 당신이 ES2020을 방출하고 있다는 겁니다.dist/
이 선을 보면 다음과 같은 불평이 나온다.
if (subscriptionContainer instanceof sub_1.ComponentContainer) if (this.agileInstance.integration?.updateMethod) this.agileInstance.integration?.updateMethod(subscriptionContainer.component, Runtime.formatChangedPropKeys(subscriptionContainer));
// ^^ // ^^
내보낸 코드의 체인 연산자(선택 사항)를 사용하고 있는 것을 볼 수 있다.따라서 라이브러리의 소비자는 이러한 종류의 코드를 처리할 수 있는 적절한 구성이 필요하다.CRA 앱의 예: Babel을 사용하고 있는 고객. 설정에는 선택적 체인을 위한 변환 기능이 있지만, Raction 앱 자체에 대한 소스 코드에서만 실행되며, 종속성(라이브러리 포함)은 실행되지 않는다.
이를 고치는 한 가지 방법은 현대적인 코드를 덜 방출하는 것으로 소비자가 필요로 하는 구성량을 줄일 수 있다.예를 들어 다음 설정을 사용하여 ES6을 대상으로 하는 경우tsconfig.json
:
{
"target": "ES6",
"lib": ["DOM", "ES6", "DOM.Iterable", "ScriptHost", "ES2016.Array.Include"],
// ...
}
리액션 앱은 소스코드를 변경할 필요 없이 적어도 시작할 수 있다.
이 경우 문제는 리액션 리프렛 버전 3.2.0이 모든 프로젝트에서 작동하지 않는다는 점이다(이유는 잘 모르겠다).나는 CRA를 사용하여 리액션으로 작업한다. 이제 해결책은...
- react-react-required 제거
- 패키지로 이동하십시오.json and paste 이 선들을 붙이다.
"react-leaflet": ">=3.1.0 <3.2.0 || ^3.2.1",
.0 properties/core": "=1.0.0 <1.1.0 | ^1.1",
그게 내가 문제를 해결한 방법이야아노테 웹사이트의 답에 대한 링크https://www.gitmemory.com/issue/PaulLeCam/react-leaflet/891/860223422
도서관의 작성자가 아니거나, 수용된 답변이 제시하는 대로 변경하고 싶지 않은 경우, 다음과 같이 할 수 있다.
@adler가 제안하는 대로 브라우저 목록을 변경하십시오.
"browserslist": [ ">0.2%", "not dead", "not op_mini all" ],
(특별한 구성을 가지고 있지 않은지 확인하십시오.
development
에browserslist
)npm 캐시 지우기:
npm cache clean --force
@Gel과 같은 것을 재설치하면 다음과 같다.
rm -rf node_modules && rm -f package-lock.json && npm i
이것이 몇 시간 동안 연구와 실험을 한 후에 나에게 도움이 된 것이다.
나는 최근에 Angular 7을 사용하고 있는데, 관리자가 우리의 결제 포털에 몇 가지 향상된 기능을 추가하고 싶다.지점을 당겼다가 내 지역구에서 운영했을 때도 같은 오류가 있었다.
나는 이것이 현재 버전의 프레임 작업에서 사용되는 js 웹팩, 프레임워크 버전 및 에크마스크립트 버전과 관련이 있다고 생각한다.
이 오류를 해결하기 위해 수행한 작업:
rm -rf node_modules
rm -f package-lock.json
npm install
내 경우에서 보다 보수적인 컴파일 목표를 설정package.json
이 문제를 해결하는 데 도움이 됨:
"browserslist": [
">0.2%",
"not dead",
"not op_mini all"],
'programing' 카테고리의 다른 글
PDF를 텍스트로 변환하기 위한 Python 모듈 (0) | 2022.03.25 |
---|---|
반응 useState는 여기서 기본값을 허용하지 않는 것 같으십니까? (0) | 2022.03.25 |
TypeScript 2와 함께 @type을 사용하는 방법 (0) | 2022.03.25 |
Vuetify v-btn 및 Vue 라우터를 사용하여 새 창에서 링크 열기 (0) | 2022.03.25 |
의미-UI 사이드바.푸셔로 인해 반응 라우터가 해당 구성 요소를 리렌더하도록 함 (0) | 2022.03.25 |