이제 다양한 모바일 엔드 단말 장치에 상승, PC의 측을 초과, 다른 장치는 필연적으로 매우, 그런 게임을 만들고, 당신 등 안드로이드 버전, IOS 버전, 여러 가지 다른 버전을 개발할 필요가 점점 더 어려워 개발, 통합되지 않은 언어의 발전으로 이어질 것입니다 인적, 물적 자원의 낭비.
시대의 큰 앞은 이러한 어려움을 해결하기 위해 정확하게 나타납니다 존재로했다.
ES6 건물 프로젝트 소개
- 프로젝트 빌드 단계
- 새로운 프로젝트 폴더 (세 블록)
- 응용 프로그램 : 프런트 엔드 코드 (JS, CSS, HTML 템플릿)
- JS
- CSS
- 견해
- 서버 : 서버 코드 (서버)
一个完整的项目必须要服务器提供接口和真实数据
express-generator脚手架
express -e .
- 작업 : 보조 코드 (컴파일러 프론트 엔드 코드 및 자동화)
- UTIL는 : 일반적인 꿀꺽 자동화 된 스크립트를 배치
args.js
(자신의 스크립트 명령 줄 인수를 쓰기)
- UTIL는 : 일반적인 꿀꺽 자동화 된 스크립트를 배치
- 응용 프로그램 : 프런트 엔드 코드 (JS, CSS, HTML 템플릿)
- 필요한 구성 파일 만들기
- package.json (NPM -y 설치)
.babelrc
(지원 ES6 문법)gulpfile.babel.js
(쭉 마시는 시작 파일 확장명이 필요로하는 프로젝트 ES6에 사용되는 구문, 그래서 추가 할 수 있기 때문에.babel
)
- 처리 명령 줄 매개 변수 (
args.js
사용자 정의 매개 변수 스크립트)
- 새로운 프로젝트 폴더 (세 블록)
인기있는 프레임 워크
- 라이브러리 및 프레임 워크
- 라이브러리 : 작은하지만 특정 규범, 자신의 코드에 주로 기반
- 프레임 : 크고 주로 사람들이이 프레임 워크에 자신의 코드를 작성하는 것을 뼈대 코드에서 필요에 의해 설립 규제 프레임 워크를 준수합니다
- MVC
- 아이디어는 단순히 코드의 구조를 구성하는 방법입니다
- 가장 중요한 점은 커플 링의 정도를 줄이는 것입니다
- 쉽게 작성하고 코드를 유지하기 위해
- 개발 팀을 용이하게하기 위해
- 전체 코드의 복잡성을 단순화, 조직 코드 분할 모듈
- 민첩한 사고 : 구성된 계약보다 더 큰, 회원들이 신속하게 개발할 수있을 것 팀만큼 서로 잘 일치
- 전망
- 데이터 기반 프레임 워크 :
- 데이터 드라이버의보기만큼 데이터가 자동으로 수정보기를 업데이트 될 때, 작업이 DOM을 필요로하지 않습니다
- 데이터 기반 프레임 워크 :
- 작업 자동화
- 툴툴 거리는 소리 : 캐스케이드 작업, 파일 작업에 속하는 한 후 천천히
- 꿀꺽 : 파일 스트림 작업 (스트림), 빠른
- 컴파일 도구
- 바벨 : 컴파일 ES6
- 웹팩 : 모듈 형 프로젝트 종속성
JQuery와
- 패키지 항목 기능
- jQuery를 입력 기능을 대신 DOMContentLoaded를 사용, 사용하지 않을 수 있습니다
모듈로드
CommonJS 사양
핵심 아이디어
- 이 모듈 있도록
require
다른 모듈에 의존 동기 방법을로드하고으로되도록exports
하거나module.exports
변명 노출되도록 유도 필요1
2
3
4요구 ( "모듈" );
필요 ( "../file.js" );
exports.doStuff = 함수 () {};
모듈 .exports = someValue와;
- 이 모듈 있도록
실현
- Node.js를 서버
- Browserify < 큰 열 큰 프런트 엔드 프리젠 테이션 툴 / UL>
AMD의
Asynchronous Module Definition
사양핵심 아이디어
- 하나의 기본 인터페이스
define(id?, dependencies?, factory)
, 그것은 모듈이 모든 의존성 종속성, 또한 공장에 전달되는 매개 변수로 종속 모듈에 대한 사전에 수행 할 때, 문에 사전 의존도를 지정하는 것입니다1
2
3
4(정의 "모듈" , [ "dep1" , "dep2" , 함수 ( D1, D2 ) { 복귀 someExportedValue 단계; }); 요구 ([ "모듈" , "../file" , 기능 ( 모듈 파일 ) {});
- 하나의 기본 인터페이스
실현
- requireJS
CMD의
Common Module Definition
사양그리고 AMD는 매우 비슷합니다, 간단하게하려고 및 모듈 CommonJS Node.js를 및 사양과의 호환성의 큰 거래를 유지하기 위해
1
2
3
4
5
6정의 ( 기능 ( 필요 수출 모듈 ) { var에 $의 =이 요구 ( 'jQuery를' ) VAR의 스피닝 =이 요구 ( './spinning' ) exports.doSomething = ... 모듈 .exports = ... })
실현
- Sea.js
- 배경 Node.js를
- 의존성 이 필요하고 수출
- browserify
- 모듈 로더,하지만 당신은 단지 JS를로드 할 수 있습니다
- 웹팩
- 모듈 로더는, 모든 일 등 CSS, 사진, VUE 파일, JS를 포함, 모듈입니다
- 모듈은 별도로 작성하고, 마지막으로 함께 포장되어
웹팩
- 웹팩 올바르게 구성
process.env.NODE_ENV
1
2
3
4
5새로운 webpack.DefinePlugin ({ 'process.env' { 'NODE_ENV' : JSON .stringify ( '생산' ) } })
다음 명령을 호출 할 때 : 웹팩 패키지 (Linux 환경)를 사용하는 방법 프로덕션 환경을 나타냅니다
NODE_ENV=production webpack --progress --colors