react 비계를 통해 새 프로젝트 만들기 (1)
npm install create-react-app -g
다음에 우리는 우리의 공사를 설치한다
create-react-app create-react-prj
cd .\create-react-prj\
npm start
설치가 완료되면 현재 디렉터리 구조를 볼 수 있습니다
create-react-prj
|--build // ,
| |-- index.html //
| |-- static //
|
|-- node_modules // :
|
|--src //
| |--index.js // ( , , )
|
|--public //
| |--index.html // ( , , )
|
|-- .gitignore //git , .idea( webstorm , )
|--package.json //
|--README.md //
|-- ...
생성된 패키지입니다.json
{
"name": "create-react-prj",
"version": "0.1.0",
"private": true,
"dependencies": { //=>
"react": "^16.2.0",
"react-dom": "^16.2.0",
"react-scripts": "1.1.0"
},
"scripts": { //=>
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test --env=jsdom",
"eject": "react-scripts eject"
}
}
/*
* :
* $ npm run start , , , ,
*
* $ npm run build , bulid ,
*
* $ npm run test Jest ( )
*
* $ npm run eject
*
* yarn
*/
여기에서 우리는create-react-app를 통해 새로 만든 프로젝트를 보았는데 디렉터리가 매우 우아하고 웹 패키지의 번잡한 설정이 없다. 비계가 이 설정들을 모두 숨겼기 때문이다. 만약에 우리가 웹 패키지 설정을 수정하려면 어떻게 처리해야 합니까?
npm run eject
디렉토리 구조 변경
create-react-prj
|-- config //webpack
| |--jest
| | |--cssTransform.js
| | |--fileTransform.js
| |--env.js
| |--paths.js
| |--polyfills.js
| |--webpack.config.dev.js
| |--webapck.config.prod.js
| |--webpackDevServer.config.js
|
|--scripts
| |-- build.js
| |-- start.js
| |-- test.js
, webpack.config.dev.js、webpack.config.prod.js , ( )
pakage.json의 디렉터리는 다음과 같습니다
{
"name": "create-react-prj",
"version": "0.1.0",
"private": true,
"dependencies": { //=> ( ) , webpack
"autoprefixer": "7.1.6",
"babel-core": "6.26.0",
"babel-eslint": "7.2.3",
"babel-jest": "20.0.3",
"babel-loader": "7.1.2",
"babel-preset-react-app": "^3.1.1",
"babel-runtime": "6.26.0",
"case-sensitive-paths-webpack-plugin": "2.1.1",
"chalk": "1.1.3",
"css-loader": "0.28.7",
"dotenv": "4.0.0",
"dotenv-expand": "4.0.1",
"eslint": "4.10.0",
"eslint-config-react-app": "^2.1.0",
"eslint-loader": "1.9.0",
"eslint-plugin-flowtype": "2.39.1",
"eslint-plugin-import": "2.8.0",
"eslint-plugin-jsx-a11y": "5.1.1",
"eslint-plugin-react": "7.4.0",
"extract-text-webpack-plugin": "3.0.2",
"file-loader": "1.1.5",
"fs-extra": "3.0.1",
"html-webpack-plugin": "2.29.0",
"jest": "20.0.4",
"object-assign": "4.1.1",
"postcss-flexbugs-fixes": "3.2.0",
"postcss-loader": "2.0.8",
"promise": "8.0.1",
"raf": "3.4.0",
"react": "^16.2.0",
"react-dev-utils": "^5.0.0",
"react-dom": "^16.2.0",
"redux": "^3.7.2",
"style-loader": "0.19.0",
"sw-precache-webpack-plugin": "0.11.4",
"url-loader": "0.6.2",
"webpack": "3.8.1",
"webpack-dev-server": "2.9.4",
"webpack-manifest-plugin": "1.3.2",
"whatwg-fetch": "2.0.3"
},
"scripts": { //=> eject ( , , )
"start": "node scripts/start.js",
"build": "node scripts/build.js",
"test": "node scripts/test.js --env=jsdom"
},
"jest": {
"collectCoverageFrom": [
"src/**/*.{js,jsx,mjs}"
],
"setupFiles": [
"/config/polyfills.js"
],
"testMatch": [
"/src/**/__tests__/**/*.{js,jsx,mjs}",
"/src/**/?(*.)(spec|test).{js,jsx,mjs}"
],
"testEnvironment": "node",
"testURL": "http://localhost",
"transform": {
"^.+\\.(js|jsx|mjs)$": "/node_modules/babel-jest",
"^.+\\.css$": "/config/jest/cssTransform.js",
"^(?!.*\\.(js|jsx|mjs|css|json)$)": "/config/jest/fileTransform.js"
},
"transformIgnorePatterns": [
"[/\\\\]node_modules[/\\\\].+\\.(js|jsx|mjs)$"
],
"moduleNameMapper": {
"^react-native$": "react-native-web"
},
"moduleFileExtensions": [
"web.js",
"mjs",
"js",
"json",
"web.jsx",
"jsx",
"node"
]
},
"babel": {
"presets": [
"react-app"
]
},
"eslintConfig": {
"extends": "react-app"
}
}
여기에서 우리는 eject라는 명령이 없어진 것을 볼 수 있다. 왜냐하면 이 명령은 거스를 수 없기 때문이다.
generator-z-react-clihttp://yeoman.io/1. 우선 npm 기반으로 전역에 yeoman 설치
npm install -g yo
그 다음에 전역적으로 비계를 설치한다
npm install -g generator-z-react-cli
최종 생성 항목
yo z-react-cli
디렉토리 구조:
my-app
|-- index.html // ( )
|-- build // ,
| |-- index.html //
| |-- static // cdn,
|
|-- src //
| |--component //
| | |-- common //
| | |-- temp //
| |--Config //
| |--Image //
| |--Redux //react-redux
| | |-- action.jsx // action
| | |-- reducer.jsx // action reducer
| | |-- store.jsx //
| |-- Router //
| |-- Style //
| |-- template // html
| |-- App.jsx //js
|
|-- webpack.config.hot //
|-- webpack.config.buildt //
|-- webpack.config.online //
|-- server.js
|-- server_hot.js //
|-- .babelrc //ES6
|-- package.json //
|--
설치 의존이 오류를 보고했습니다
check python checking for Python executable "python2"in the PATH gyp verb
which
failed Error: not found:python2 그리고 저희가 구글을 하나 만들었어요.npm --add-python-to-path='true' --debug install --global windows-build-tools
npm install --global node-gyp
실행 완료 후 오류 없이 설치 완료
npm run hot
프로젝트 전체 컴파일 배치, 테스트 환경 npm run buildt
프로젝트 전체 컴파일 배치, 온라인 환경 npm run online
이 특색은 바로 JSX 문법을 해석할 수 있고 ES6 문법의 새로운 특성을 해석할 수 있으며 LESS,SCSS 프로세서를 지원한다. 컴파일링이 완료되면 자동으로 브라우저를 열고 CSS 스타일 파일을 단독으로 분리한다. 파일 MD5 스탬프를 지원하고 파일 캐시 문제를 해결하며 그림, 아이콘 글씨체 등 소스를 지원한다. 브라우저 소스 디버깅을 지원하고 구성 요소급 핫 업데이트를 실현한다.코드의 핫 교체를 실현하고 브라우저가 실시간으로 리셋하여 효과를 보고 개발 환경과 생산 환경을 구분하여 업무 기능 코드와 공공 의존 코드를 분리하는 것이 뚜렷하다. 이 비계는 더욱 강력한 기능을 통합시켰다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.