CRA 5 + 원사 작업 공간 + 공유 TypeScript 패키지
6297 단어 typescriptmonoreporeact
create-react-app
컴파일해야 하는 경우 모노 리포지토리 내부의 공유 패키지와 잘 작동하지 않습니다(내 TypeScript 공유 유형 패키지의 경우)craco
는 CRA 5에서 공식적으로 작동하지 않지만 Craco 7 alpha에서는 최소한 이 문제를 해결하기에 충분합니다. craco
구성:const fs = require('fs');
const path = require('path');
const cracoBabelLoader = require('craco-babel-loader');
const appDirectory = fs.realpathSync(process.cwd());
const resolveApp = (relativePath) => path.resolve(appDirectory, relativePath);
module.exports = {
plugins: [
{
plugin: cracoBabelLoader,
options: {
includes: [resolveApp('../packages')],
},
},
],
};
이것은 빠른 것입니다. 내 모노레포에서 공유
types
패키지를 사용하기 위해 오늘 많은 어려움을 겪었습니다. 내 구조는 다음과 같습니다./.git
/app // react application with CRA 5
/src
package.json
/gateway
/src
package.json
/packages
/types
...
package.json
package.json
나는 사용하고 있습니다:
문제
여기 내 gateway
와 app
가 모두 packages/types
에 따라 있습니다. gateway
는 잘 작동하지만 app
는 CRA 구성의 제한 사항이므로 app/src
외부에서 파일을 가져오고 있다고 불평합니다.
해결책
나는 방출을 시도했지만 아무것도 작동하지 않는 토끼 굴로 내려갔습니다. 그래서 나는 그 커밋을 되돌리고 [email protected]
를 진행했습니다. 내부app
실행:
$ yarn add [email protected]
그런 다음 에서 this answer을 찾아 필요에 맞게 편집했습니다.
const fs = require('fs');
const path = require('path');
const cracoBabelLoader = require('craco-babel-loader');
const appDirectory = fs.realpathSync(process.cwd());
const resolveApp = (relativePath) => path.resolve(appDirectory, relativePath);
module.exports = {
plugins: [
{
plugin: cracoBabelLoader,
options: {
includes: [resolveApp('../packages')],
},
},
],
};
고마워요, 당신은 내 하루를 구했습니다. 이제 create-react-app
에 찬성하여 next.js
삭제 티켓을 만들고 다음 기술 부채 회의에 추가하겠습니다.
Reference
이 문제에 관하여(CRA 5 + 원사 작업 공간 + 공유 TypeScript 패키지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://dev.to/andrecastelo/cra-5-yarn-workspaces-shared-typescript-packages-1103
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
나는 방출을 시도했지만 아무것도 작동하지 않는 토끼 굴로 내려갔습니다. 그래서 나는 그 커밋을 되돌리고
[email protected]
를 진행했습니다. 내부app
실행:$ yarn add [email protected]
그런 다음 에서 this answer을 찾아 필요에 맞게 편집했습니다.
const fs = require('fs');
const path = require('path');
const cracoBabelLoader = require('craco-babel-loader');
const appDirectory = fs.realpathSync(process.cwd());
const resolveApp = (relativePath) => path.resolve(appDirectory, relativePath);
module.exports = {
plugins: [
{
plugin: cracoBabelLoader,
options: {
includes: [resolveApp('../packages')],
},
},
],
};
고마워요, 당신은 내 하루를 구했습니다. 이제
create-react-app
에 찬성하여 next.js
삭제 티켓을 만들고 다음 기술 부채 회의에 추가하겠습니다.
Reference
이 문제에 관하여(CRA 5 + 원사 작업 공간 + 공유 TypeScript 패키지), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/andrecastelo/cra-5-yarn-workspaces-shared-typescript-packages-1103텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)