React에서 여러 항목의 공통 구성 요소를 처리하는 방법 [create-react-ap]
TL;DR
User用
와 Admin用
는 다른 프로젝트로 제작, 공동 구성 요소 처리 등)create-react-app 프로젝트를 시작하는 경우 기본 설정이 어렵기 때문에 거스를 수 없는 조작
yarn eject
(ornpm run eject
을 통해 수동으로 설정합니다.Pros & Cons
Pros
Cons
package.json
에서 관리되므로 여러 프로젝트에서 동일한 패키지를 사용할 때 버전 일치진행
npm run eject
하기 때문에create-react-app 버전 업그레이드를 따라갈 수 없음메서드
yarn eject
편집
config/paths.js
src/
, 수정public/
의 디렉터리 구조편집
package.json
전제 조건
create-react-app ( ver1.3.1 )
샘플(Giithub)
commit
1. yarn eject
$ yarn eject
주의: 이 명령을 실행하면 (git 작업 이외에는) 취소할 수 없습니다2. config/paths.js 편집
paths.js
~ 省略 ~
// デフォルトは'user'
const ENTRY_NAME = process.env.ENTRY_NAME || 'user' //追加
module.exports = {
dotenv: resolveApp('.env'),
appPath: resolveApp('.'),
appBuild: resolveApp('build/' + ENTRY_NAME), //
appPublic: resolveApp('public/' + ENTRY_NAME), //
appHtml: resolveApp(`public/${ENTRY_NAME}/index.html`), // 編集
appIndexJs: resolveModule(resolveApp, `src/${ENTRY_NAME}/index`), //
appPackageJson: resolveApp('package.json'),
appSrc: resolveApp('src'),
appTsConfig: resolveApp('tsconfig.json'),
yarnLockFile: resolveApp('yarn.lock'),
testsSetup: resolveModule(resolveApp, 'src/setupTests'),
proxySetup: resolveApp('src/setupProxy.js'),
appNodeModules: resolveApp('node_modules'),
publicUrl: getPublicUrl(resolveApp('package.json')),
servedPath: getServedPath(resolveApp('package.json')),
};
3. src/,public/의 디렉터리 구조 수정
config
scripts
public
index.html
favicon.ico
manifest.json
src
index.js
index.css
package.json
↓config
scripts
public
admin
index.html
favicon.ico
manifest.json
user
index.html
favicon.ico
manifest.json
src
admin
index.js
index.css
user
index.js
index.css
shared
MySharedComponent.jsx
package.json
4. package.json 편집
package.json
"scripts": {
"start": "node scripts/start.js",
"build": "node scripts/build.js",
"test": "node scripts/test.js",
"start:admin": "ENTRY_NAME='admin' node scripts/start.js",
"build:admin": "ENTRY_NAME='admin' node scripts/build.js",
"test:admin": "ENTRY_NAME='admin' node scripts/test.js"
},
Reference
이 문제에 관하여(React에서 여러 항목의 공통 구성 요소를 처리하는 방법 [create-react-ap]), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/coffeemk2/items/153da4a11a585036060b텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)