수색…


비고

이 섹션에서는 다양한 환경에서 사용하기 위해 Angular2 +를 설치하고 구성하는 방법에 대한 개요를 제공하고 커뮤니티에서 개발 한 Angular-Cli 와 같은 도구를 사용하는 IDE를 제공합니다.

Angular의 이전 버전은 AngularJS 이거나 Angular 1이라고도 합니다 . 설명서를 참조하십시오.

버전

번역 출시일
4.3.3 2017-08-02
4.3.2 2017-07-26
4.3.1 2017-07-19
4.3.0 2017-07-14
4.2.0 2017-06-08
4.1.0 2017-04-26
4.0.0 2017-03-23
2.3.0 2016-12-08
2.2.0 2016-11-14
2.1.0 2016-10-13
2.0.2 2016-10-05
2.0.1 2016-09-23
2.0.0 2016-09-14
2.0.0-rc.7 2016-09-13
2.0.0-rc.6 2016-08-31
2.0.0-rc.5 2016-08-09
2.0.0-rc.4 2016-06-30
2.0.0-rc.3 2016-06-21
2.0.0-rc.2 2016-06-15
2.0.0-rc.1 2016-05-03
2.0.0-rc.0 2016-05-02

angular-cli로 angular2 설치하기

이 예제는 Angular 2를 빠르게 설정하고 간단한 예제 프로젝트를 생성하는 방법입니다.

선수 과목 :

터미널을 열고 명령을 하나씩 실행하십시오.

npm install -g @angular/cli

또는

yarn global add @angular/cli

패키지 관리자 선택에 따라 다릅니다.

이전 명령은 실행 추가, 전 세계적으로 각도 / CLI @ 설치 ng PATH에 있습니다.

새 프로젝트를 설정하려면

새 프로젝트를 설정할 폴더로 터미널을 탐색하십시오.

다음 명령을 실행하십시오.

ng new PROJECT_NAME
cd PROJECT_NAME
ng serve

즉, 이제 Angular 2로 만든 간단한 예제 프로젝트를 만들었습니다. 터미널에 표시된 링크로 이동하여 현재 실행중인 내용을 볼 수 있습니다.

기존 프로젝트에 추가하려면

현재 프로젝트의 루트로 이동하십시오.

다음 명령을 실행하십시오.

ng init

그러면 프로젝트에 필요한 스캐 폴딩이 추가됩니다. 파일은 현재 디렉토리에 생성되므로 빈 디렉토리에서이 파일을 실행하십시오.

프로젝트를 로컬에서 실행하기

브라우저에서 실행되는 동안 응용 프로그램을보고 상호 작용하려면 프로젝트 파일을 호스팅하는 로컬 개발 서버를 시작해야합니다.

ng serve

서버가 성공적으로 시작된 경우 서버가 실행중인 주소가 표시되어야합니다. 일반적으로 다음과 같습니다.

http://localhost:4200

이 로컬 개발 서버는 Hot Module Reloading으로 연결되어 있으므로 HTML, 타이프 스크립트 또는 CSS를 변경하면 브라우저가 자동으로 다시로드됩니다 (그러나 원하는 경우 비활성화 할 수 있음).

구성 요소, 지시문, 파이프 및 서비스 생성

ng generate <scaffold-type> <name> (또는 단순히 ng g <scaffold-type> <name> ) 명령을 생성하면 각도 구성 요소가 자동으로 생성됩니다.

# The command below will generate a component in the folder you are currently at
ng generate component my-generated-component
# Using the alias (same outcome as above)
ng g component my-generated-component

angular-cli가 생성 할 수있는 스캐 폴드에는 여러 가지 유형이 있습니다.

비계 유형 용법
기준 치수 ng g module my-new-module
구성 요소 ng g component my-new-component
지령 ng g directive my-new-directive
파이프 ng g pipe my-new-pipe
서비스 ng g service my-new-service
수업 ng g class my-new-class
인터페이스 ng g interface my-new-interface
열거 형 ng g enum my-new-enum

형식 이름을 첫 번째 문자로 바꿀 수도 있습니다. 예 :

ng gm my-new-module 을 사용하여 새 ng gm my-new-module 을 생성하거나 ng gc my-new-component 를 사용하여 구성 ng gc my-new-component 를 만듭니다.

건물 / 묶기

Angular 2 웹 응용 프로그램을 모두 빌드하고 Apache Tomcat과 같은 웹 서버에 설치하려는 경우 프로덕션 플래그가 설정되어 있는지 여부에 관계없이 빌드 명령을 실행하면됩니다. 프로덕션은 코드를 최소화하고 프로덕션 설정을 최적화합니다.

ng build

또는

ng build --prod

그런 다음 프로젝트 루트 디렉토리에서 빌드가 들어있는 /dist 폴더를 찾습니다.

소규모 제작 번들의 이점을 얻으려면 Ahead-of-Time 템플릿 컴파일을 사용할 수도 있습니다.이 컴파일은 최종 빌드에서 템플릿 컴파일러를 제거합니다.

ng build --prod --aot

단위 테스트

Angular 2는 기본 단위 테스트를 제공하며 Angular-Cli로 작성된 모든 항목은 확장 할 수있는 기본 단위 테스트를 생성합니다. 단위 테스트는 jasmine을 사용하여 작성되고 카르마를 통해 실행됩니다. 테스트를 시작하려면 다음 명령을 실행하십시오.

ng test

이 명령은 프로젝트의 모든 테스트를 실행하고 소스 파일이 변경 될 때마다 응용 프로그램의 테스트 또는 코드 여부와 상관없이 다시 실행합니다.

자세한 정보는 angular-cli github 페이지를 참조하십시오.

angular-cli없이 Angular 2 시작하기.

각도 2.0.0-rc.4

이 예제에서는 "Hello World!" ( AppComponent )를 하나의 루트 구성 요소와 함께 사용하는 것이 AppComponent .

선수 과목 :

참고 : 콘솔 / 터미널에서 node -vnpm -v 를 실행하여 버전을 확인할 수 있습니다.

1 단계

프로젝트에 사용할 새 폴더를 만들고 입력하십시오. 이것을 angular2-example 이라고 angular2-example .

mkdir angular2-example
cd angular2-example

2 단계

앱 코드를 작성하기 전에 package.json , tsconfig.json , typings.jsonsystemjs.config.js 의 4 가지 파일을 추가합니다.

면책 조항 : 동일한 파일은 Official 5 Minute Quickstart 에서 찾을 수 있습니다.

package.json - npm을 사용하여 모든 종속성을 다운로드하고 간단한 스크립트 실행을 제공하여 간단한 프로젝트에서 더 쉽게 사용할 수 있도록합니다. (작업을 자동화하기 위해 Gulp 와 같은 것을 미래에 사용하는 것을 고려해야합니다.)

{
  "name": "angular2-example",
  "version": "1.0.0",
  "scripts": {
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ",
    "lite": "lite-server",
    "postinstall": "typings install",
    "tsc": "tsc",
    "tsc:w": "tsc -w",
    "typings": "typings"
  },
  "license": "ISC",
  "dependencies": {
    "@angular/common": "2.0.0-rc.4",
    "@angular/compiler": "2.0.0-rc.4",
    "@angular/core": "2.0.0-rc.4",
    "@angular/forms": "0.2.0",
    "@angular/http": "2.0.0-rc.4",
    "@angular/platform-browser": "2.0.0-rc.4",
    "@angular/platform-browser-dynamic": "2.0.0-rc.4",
    "@angular/router": "3.0.0-beta.1",
    "@angular/router-deprecated": "2.0.0-rc.2",
    "@angular/upgrade": "2.0.0-rc.4",
    "systemjs": "0.19.27",
    "core-js": "^2.4.0",
    "reflect-metadata": "^0.1.3",
    "rxjs": "5.0.0-beta.6",
    "zone.js": "^0.6.12",
    "angular2-in-memory-web-api": "0.0.14",
    "bootstrap": "^3.3.6"
  },
  "devDependencies": {
    "concurrently": "^2.0.0",
    "lite-server": "^2.2.0",
    "typescript": "^1.8.10",
    "typings":"^1.0.4"
  }
}

tsconfig.json - TypeScript 변환기를 구성합니다.

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  }
}

typings.json - 우리가 사용하고있는 라이브러리를 TypeScript에서 인식하게합니다.

{
  "globalDependencies": {
    "core-js": "registry:dt/core-js#0.0.0+20160602141332",
    "jasmine": "registry:dt/jasmine#2.2.0+20160621224255",
    "node": "registry:dt/node#6.0.0+20160621231320"
  }
}

systemjs.config.js - systemjs.config.js 구성합니다 ( webpack 을 사용할 수도 있음 ).

/**
 * System configuration for Angular 2 samples
 * Adjust as necessary for your application's needs.
 */
(function(global) {
  // map tells the System loader where to look for things
  var map = {
    'app':                        'app', // 'dist',
    '@angular':                   'node_modules/@angular',
    'angular2-in-memory-web-api': 'node_modules/angular2-in-memory-web-api',
    'rxjs':                       'node_modules/rxjs'
  };
  // packages tells the System loader how to load when no filename and/or no extension
  var packages = {
    'app':                        { main: 'main.js',  defaultExtension: 'js' },
    'rxjs':                       { defaultExtension: 'js' },
    'angular2-in-memory-web-api': { main: 'index.js', defaultExtension: 'js' },
  };
  var ngPackageNames = [
    'common',
    'compiler',
    'core',
    'forms',
    'http',
    'platform-browser',
    'platform-browser-dynamic',
    'router',
    'router-deprecated',
    'upgrade',
  ];
  // Individual files (~300 requests):
  function packIndex(pkgName) {
    packages['@angular/'+pkgName] = { main: 'index.js', defaultExtension: 'js' };
  }
  // Bundled (~40 requests):
  function packUmd(pkgName) {
    packages['@angular/'+pkgName] = { main: '/bundles/' + pkgName + '.umd.js', defaultExtension: 'js' };
  }
  // Most environments should use UMD; some (Karma) need the individual index files
  var setPackageConfig = System.packageWithIndex ? packIndex : packUmd;
  // Add package entries for angular packages
  ngPackageNames.forEach(setPackageConfig);
  var config = {
    map: map,
    packages: packages
  };
  System.config(config);
})(this);

3 단계

입력하여 종속성을 설치합시다.

npm install

콘솔 / 터미널에 있습니다.

4 단계

angular2-example 폴더 안에 index.html 만듭니다.

<html>
  <head>
    <title>Angular2 example</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 1. Load libraries -->
    <!-- Polyfill(s) for older browsers -->
    <script src="node_modules/core-js/client/shim.min.js"></script>
    <script src="node_modules/zone.js/dist/zone.js"></script>
    <script src="node_modules/reflect-metadata/Reflect.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <!-- 2. Configure SystemJS -->
    <script src="systemjs.config.js"></script>
    <script>
      System.import('app').catch(function(err){ console.error(err); });
    </script>
  </head>
  <!-- 3. Display the application -->
  <body>
    <my-app></my-app>
  </body>
</html>

응용 프로그램은 my-app 태그 사이에 렌더링됩니다.

그러나 Angular는 렌더링 할 항목 을 아직 모릅니다. 그 사실을 알기 위해 우리는 AppComponent 정의 할 AppComponent 입니다.

5 단계

app 구성하는 구성 요소와 서비스 를 정의 할 수있는 app 이라는 하위 폴더를 만듭니다. (이 경우에는 AppComponent 코드와 main.ts 만 포함됩니다.)

mkdir app

6 단계

app/app.component.ts 파일을 만듭니다.

import { Component } from '@angular/core';

@Component({
  selector: 'my-app',
  template: `
    <h1>{{title}}</h1>
    <ul>
        <li *ngFor="let message of messages">
            {{message}}
        </li>
    </ul>
  `
})
export class AppComponent { 
    title = "Angular2 example";
    messages = [
        "Hello World!",
        "Another string",
        "Another one"
    ];
}

무슨 일이야? 첫째, Angular에이 컴포넌트의 HTML 태그와 템플릿을 제공하기 위해 사용하는 @Component 데코레이터를 @Component . 그런 다음 템플릿에 사용할 수있는 titlemessages 변수가있는 AppComponent 클래스를 AppComponent .

이제 해당 템플릿을 살펴 보겠습니다.

<h1>{{title}}</h1>
<ul>
    <li *ngFor="let message of messages">
        {{message}}
    </li>
</ul>

우리는 h1 태그에 title 변수를 표시 한 다음 *ngFor 지시문을 사용하여 messages 배열의 각 요소를 보여주는 목록을 만들고 있습니다. 배열의 각 요소에 대해 *ngForli 요소 내에서 사용하는 message 변수를 만듭니다. 결과는 다음과 같습니다.

<h1>Angular 2 example</h1>
<ul>
    <li>Hello World!</li>
    <li>Another string</li>
    <li>Another one</li>
</ul>

7 단계

이제 우리는 Angular가 보는 첫 번째 파일이 될 main.ts 파일을 만듭니다.

app/main.ts 파일을 만듭니다.

import { bootstrap }    from '@angular/platform-browser-dynamic';
import { AppComponent } from './app.component';

bootstrap(AppComponent);

우리는 bootstrap 함수와 AppComponent 클래스를 가져온 다음 bootstrap 을 사용하여 루트로 사용할 구성 요소를 Angular에 알립니다.

8 단계

첫 번째 앱을 시작할 때입니다. 유형

npm start

귀하의 콘솔 / 터미널. 이렇게하면 lite-server를 시작하고 브라우저 창에서 응용 프로그램을 열고 시계 모드에서 TypeScript 변환기를 실행하는 package.json 에서 준비된 스크립트가 실행됩니다 (따라서 .ts 파일이 이동되고 변경 사항을 저장할 때 브라우저가 새로 고침) .

지금 뭐야?

공식 Angular 2 가이드StackOverflow의 문서 에있는 다른 항목을 확인하십시오.

AppComponent 를 편집하여 외부 템플릿, 스타일을 사용하거나 구성 요소 변수를 추가 / 편집 할 수도 있습니다. 파일을 저장 한 직후에 변경 사항을 확인해야합니다.

Visual Studio를 NPM 및 NODE 업데이트와 동기화 유지

1 단계 : Node.js의 다운로드 위치를 찾으십시오. 일반적으로 C : / program files / nodejs 아래에 설치됩니다.

2 단계 : Visual Studio를 열고 "도구> 옵션"으로 이동하십시오.

3 단계 : 옵션 창에서 "프로젝트 및 솔루션> 외부 웹 도구"로 이동합니다.

4 단계 : Node.js 파일 위치 (C : / program files / nodejs)와 함께 새 항목을 추가하려면 메뉴의 화살표 버튼을 사용하여 참조를 목록의 맨 위로 이동하십시오.

여기에 이미지 설명을 입력하십시오.

5 단계 : Visual Studio를 다시 시작하고 npm 명령 창에서 프로젝트에 대해 npm 설치를 실행합니다.

그 성가신 회사 프록시를 통해 얻으십시오.

XYZ MegaCorp의 Windows 작업 컴퓨터에서 Angular2 사이트를 실행하려고하면 회사 프록시를 통과하는 데 문제가있을 수 있습니다.

프록시를 통과해야하는 (적어도) 두 개의 패키지 관리자가 있습니다.

  1. NPM
  2. 타이핑

NPM의 경우 .npmrc 파일에 다음 행을 추가해야합니다.

proxy=http://[DOMAIN]%5C[USER]:[PASS]@[PROXY]:[PROXYPORT]/
https-proxy=http://[DOMAIN]%5C[USER]:[PASS]@[PROXY]:[PROXYPORT]/

타이핑의 경우 .typingsrc 파일에 다음 행을 추가해야합니다.

proxy=http://[DOMAIN]%5C[USER]:[PASS]@[PROXY]:[PROXYPORT]/
https-proxy=http://[DOMAIN]%5C[USER]:[PASS]@[PROXY]:[PROXYPORT]/
rejectUnauthorized=false

이러한 파일은 아직 존재하지 않으므로 빈 텍스트 파일로 만들 수 있습니다. 그것들은 프로젝트 루트에 추가 될 수 있습니다 ( package.json 과 같은 장소 또는 %HOMEPATH% 에 넣을 수 있으며 모든 프로젝트에서 사용할 수 있습니다).

명백하지 않고 사람들이 프록시 설정이 작동하지 않는다고 생각하는 주된 이유는 도메인과 사용자 이름을 구분하는 \ 의 URL 인코딩 인 %5C 입니다. Steve Roberts에게 감사드립니다. 기업 프록시 .pac 뒤에 npm 사용

node.js / expressjs 백엔드로 Angular 2 시작하기 (http 예제 포함)

간단한 "Hello World!"를 만들 것입니다. node.js (expressjs) 백엔드가있는 Angular2 2.4.1 ( @NgModule 변경) 앱.

선결 요건

그런 다음 npm install -g typescript 또는 yarn global add typescript 을 입력하여 typescript를 yarn global add typescript 하여 전역으로 yarn global add typescript 를 설치하십시오.

로드맵

1 단계

우리의 앱을위한 새로운 폴더 (그리고 우리 백엔드의 루트 디렉토리)를 만드십시오. Angular2-express 라고 Angular2-express .

명령 줄 :

mkdir Angular2-express
cd Angular2-express

2 단계

node.js 앱의 package.json (종속성의 경우) 및 app.js (부트 스트래핑의 경우)를 만듭니다.

package.json :

{
  "name": "Angular2-express",
  "version": "1.0.0",
  "description": "",
  "scripts": {
    "start": "node app.js"
  },
  "author": "",
  "license": "ISC",
  "dependencies": {
    "body-parser": "^1.13.3",
    "express": "^4.13.3"
  }
}

app.js :

var express = require('express');
var app = express();
var server = require('http').Server(app);
var bodyParser = require('body-parser');

server.listen(process.env.PORT || 9999, function(){
    console.log("Server connected. Listening on port: " + (process.env.PORT || 9999));
});

app.use(bodyParser.json());
app.use(bodyParser.urlencoded({extended: true}) );

app.use( express.static(__dirname + '/front' ) );

app.get('/test', function(req,res){ //example http request receiver
  return res.send(myTestVar);
});

//send the index.html on every page refresh and let angular handle the routing
app.get('/*',  function(req, res, next) {
    console.log("Reloading");
    res.sendFile('index.html', { root: __dirname }); 
});

그런 다음 npm install 또는 yarn 을 실행하여 종속성을 설치하십시오.

이제 우리의 백엔드 구조가 완성되었습니다. 프론트 엔드로 넘어 갑시다.

3 단계

우리의 프론트 엔드라는 이름의 폴더에 있어야 front 우리의 내부 Angular2-express 폴더에 있습니다.

명령 줄 :

mkdir front
cd front

백 엔드와 마찬가지로 프런트 엔드에도 종속 파일이 필요합니다. 다음 파일을 작성하십시오. package.json , systemjs.config.js , tsconfig.json

package.json :

{
  "name": "Angular2-express",
  "version": "1.0.0",
  "scripts": {
    "tsc": "tsc",
    "tsc:w": "tsc -w"
  },
  "licenses": [
    {
      "type": "MIT",
      "url": "https://github.com/angular/angular.io/blob/master/LICENSE"
    }
  ],
  "dependencies": {
    "@angular/common": "~2.4.1",
    "@angular/compiler": "~2.4.1",
    "@angular/compiler-cli": "^2.4.1",
    "@angular/core": "~2.4.1",
    "@angular/forms": "~2.4.1",
    "@angular/http": "~2.4.1",
    "@angular/platform-browser": "~2.4.1",
    "@angular/platform-browser-dynamic": "~2.4.1",
    "@angular/platform-server": "^2.4.1",
    "@angular/router": "~3.4.0",
    "core-js": "^2.4.1",
    "reflect-metadata": "^0.1.8",
    "rxjs": "^5.0.2",
    "systemjs": "0.19.40",
    "zone.js": "^0.7.4"
  },
  "devDependencies": {
    "@types/core-js": "^0.9.34",
    "@types/node": "^6.0.45",
    "typescript": "2.0.2"
  }
}

systemjs.config.js :

/**
 * System configuration for Angular samples
 * Adjust as necessary for your application needs.
 */
(function (global) {
  System.config({
    defaultJSExtensions:true,
    paths: {
      // paths serve as alias
      'npm:': 'node_modules/'
    },
    // map tells the System loader where to look for things
    map: {
      // our app is within the app folder
      app: 'app',
      // angular bundles
      '@angular/core': 'npm:@angular/core/bundles/core.umd.js',
      '@angular/common': 'npm:@angular/common/bundles/common.umd.js',
      '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js',
      '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js',
      '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',
      '@angular/http': 'npm:@angular/http/bundles/http.umd.js',
      '@angular/router': 'npm:@angular/router/bundles/router.umd.js',
      '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js',
      // other libraries
      'rxjs':                      'npm:rxjs',
      'angular-in-memory-web-api': 'npm:angular-in-memory-web-api',
    },
    // packages tells the System loader how to load when no filename and/or no extension
    packages: {
      app: {
        main: './main.js',
        defaultExtension: 'js'
      },
      rxjs: {
        defaultExtension: 'js'
      }
    }
  });
})(this);

tsconfig.json :

{
  "compilerOptions": {
    "target": "es5",
    "module": "commonjs",
    "moduleResolution": "node",
    "sourceMap": true,
    "emitDecoratorMetadata": true,
    "experimentalDecorators": true,
    "removeComments": false,
    "noImplicitAny": false
  },
  "compileOnSave": true,
  "exclude": [
    "node_modules/*"
  ]
}

그런 다음 npm install 또는 yarn 을 실행하여 종속성을 설치하십시오.

이제 우리의 의존성 파일이 완성되었습니다. 우리의 index.html 로 이동하자 :

index.html :

<html>
  <head>
    <base href="/">
    <title>Angular2-express</title>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- 1. Load libraries -->
     <!-- Polyfill(s) for older browsers -->
    <script src="node_modules/core-js/client/shim.min.js"></script>
    <script src="node_modules/zone.js/dist/zone.js"></script>
    <script src="node_modules/reflect-metadata/Reflect.js"></script>
    <script src="node_modules/systemjs/dist/system.src.js"></script>
    <!-- 2. Configure SystemJS -->
    <script src="systemjs.config.js"></script>
    <script>
      System.import('app').catch(function(err){ console.error(err); });
    </script>
    
  </head>
  <!-- 3. Display the application -->
  <body>
    <my-app>Loading...</my-app>
  </body>
</html>

이제 첫 번째 구성 요소를 만들 준비가되었습니다. front 폴더에 app 이라는 폴더를 만듭니다.

명령 줄 :

mkdir app
cd app

다음 파일을 main.ts , app.module.ts , app.component.ts

main.ts :

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app.module';

const platform = platformBrowserDynamic();
platform.bootstrapModule(AppModule);

app.module.ts :

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { HttpModule } from "@angular/http";

import { AppComponent }   from './app.component';

@NgModule({
  imports:      [ 
    BrowserModule,
    HttpModule    
  ],
  declarations: [ 
    AppComponent
  ],
  providers:[ ],
  bootstrap:    [ AppComponent ]
})
export class AppModule {}

app.component.ts :

import { Component } from '@angular/core';
import { Http } from '@angular/http';

@Component({
  selector: 'my-app',
  template: 'Hello World!',
  providers: []
})
export class AppComponent { 
  constructor(private http: Http){
    //http get example
    this.http.get('/test')
     .subscribe((res)=>{
       console.log(res);
     });
  }
}

이 후에 typescript 파일을 javascript 파일로 컴파일하십시오. 현재 dir (Angular2-express 폴더 안에 있음)에서 2 레벨 위로 이동하고 아래 명령을 실행하십시오.

명령 줄 :

cd ..
cd ..
tsc -p front

우리의 폴더 구조는 다음과 같아야합니다.

Angular2-express
├── app.js
├── node_modules
├── package.json
├── front
│   ├── package.json
│   ├── index.html
│   ├── node_modules
│   ├── systemjs.config.js
│   ├── tsconfig.json
│   ├── app
│   │   ├── app.component.ts
│   │   ├── app.component.js.map
│   │   ├── app.component.js
│   │   ├── app.module.ts
│   │   ├── app.module.js.map
│   │   ├── app.module.js
│   │   ├── main.ts
│   │   ├── main.js.map
│   │   ├── main.js

마지막으로, Angular2-express 폴더 안에 명령 행에서 node app.js 명령을 실행 node app.js . 좋아하는 브라우저를 열고 localhost:9999 를 확인하여 앱을 확인하십시오.

각도 4로 뛰어 들자!

각도 4를 사용할 수 있습니다! 사실 Angular는 Angular 2 이후에 semver를 사용합니다. 변경 사항이 적용되었을 때 주 번호가 증가해야합니다. Angular 팀은 변경 사항을 깨는 기능을 연기하여 Angular 4와 함께 출시 할 예정입니다. 라우터에 이미 버전 3이 있으므로 Angular 3을 생략하면 코어 모듈의 버전 번호를 정렬 할 수 있습니다.

Angular 팀에 따라 Angular 4 응용 프로그램은 공간을 덜 소모하고 이전보다 빠르게 수행합니다. 애니메이션 패키지를 @ angular / core 패키지에서 분리했습니다. 애니메이션 패키지를 사용하지 않는 사람이라면 여분의 코드 공간이 프로덕션에서 끝나지 않을 것입니다. 템플릿 바인딩 구문은 이제 if / else 스타일 구문을 지원합니다. Angular 4는 Typescript 2.1 및 2.2의 최신 버전과 호환됩니다. 따라서 Angular 4는 더욱 흥미 진진합니다.

이제 프로젝트에서 앵귤러 4의 설정을하는 방법을 보여 드리겠습니다.

세 가지 방법으로 각도 설정을 시작해 보겠습니다.

Angular-CLI (Command Line Interface)를 사용하여 모든 종속성을 설치합니다.

  • Angular 2에서 Angular 4로 마이그레이션 할 수 있습니다.

  • github을 사용하여 Angular4 상용구를 복제 할 수 있습니다. (가장 쉬운 방법입니다.)

  • Angular-CLI (명령 줄 인터페이스)를 사용한 각도 설정.

Angular-CLI를 사용하기 전에 컴퓨터에 노드가 설치되어 있는지 확인하십시오. 여기, 노드 v7.8.0을 사용하고 있습니다. 이제 터미널을 열고 Angular-CLI에 대해 다음 명령을 입력하십시오.

npm install -g @angular/cli

또는

yarn global add @angular/cli

사용하는 패키지 관리자에 따라 다릅니다.

Angular-CLI를 사용하여 Angular 4를 설치합시다.

ng new Angular4-boilerplate

cd Angular4-boilerplate 우리는 모두 각도 4로 설정되어 있습니다. 매우 쉽고 간단한 방법입니다 .😌

각도 2에서 각도 4로 이동하여 각도 설정

이제 두 번째 접근법을 살펴 보겠습니다. Angular 2를 Angular 4로 마이그레이션하는 방법을 보여 드리겠습니다. Angular 2 프로젝트를 복제하고 패키지의 Angular 4 Dependency로 Angular 2 종속성을 업데이트해야합니다. 다음과 같이 :

"dependencies": {
    "@angular/animations": "^4.1.0",
    "@angular/common": "4.0.2",
    "@angular/compiler": "4.0.2",
    "@angular/core": "^4.0.1",
    "@angular/forms": "4.0.2",
    "@angular/http": "4.0.2",
    "@angular/material": "^2.0.0-beta.3",
    "@angular/platform-browser": "4.0.2",
    "@angular/platform-browser-dynamic": "4.0.2",
    "@angular/router": "4.0.2",
    "typescript": "2.2.2"
   }

이것들은 Angular 4의 주요 의존성입니다. 이제 npm을 설치 한 다음 npm을 실행하여 응용 프로그램을 실행할 수 있습니다. 내 package.json을 참조하십시오.

github 프로젝트의 각도 설정

이 단계를 시작하기 전에 컴퓨터에 git이 설치되어 있는지 확인하십시오. 아래 명령을 사용하여 터미널을 열고 angular4-boilerplate를 복제하십시오.

[email protected]:CypherTree/angular4-boilerplate.git

그런 다음 모든 종속성을 설치하고 실행하십시오.

npm install

npm start

그리고 Angular 4 설정이 완료되었습니다. 모든 단계는 매우 간단하므로 어느 단계에서든 선택할 수 있습니다.

angular4 - 상용구의 디렉토리 구조

Angular4-boilerplate
-karma
-node_modules
-src
   -mocks
   -models
      -loginform.ts
      -index.ts
   -modules
      -app
        -app.component.ts
     -app.component.html
      -login
    -login.component.ts
    -login.component.html
    -login.component.css
      -widget
     -widget.component.ts
     -widget.component.html
     -widget.component.css
    ........    
   -services
       -login.service.ts
    -rest.service.ts
   -app.routing.module.ts
   -app.module.ts
   -bootstrap.ts
   -index.html
   -vendor.ts
-typings
-webpack
-package.json
-tsconfig.json
-tslint.json
-typings.json 

디렉토리 구조에 대한 기본적인 이해 :

모든 코드는 src 폴더에 있습니다.

mocks 폴더는 테스트 목적으로 사용되는 모의 데이터 용입니다.

model 폴더에는 구성 요소에 사용 된 클래스와 인터페이스가 들어 있습니다.

modules 폴더에는 app, login, widget 등의 구성 요소 목록이 들어 있습니다. 모든 구성 요소에는 typescript, html 및 css 파일이 들어 있습니다. index.ts는 모든 클래스를 내보내는 데 사용됩니다.

services 폴더에는 응용 프로그램에 사용되는 서비스 목록이 들어 있습니다. 나는 휴식 서비스와 다른 구성 요소 서비스를 분리했다. 휴식 서비스에는 다양한 http 방법이 포함되어 있습니다. 로그인 서비스는 로그인 구성 요소와 휴식 서비스 간의 조정자로 작동합니다.

app.routing.ts 파일은 응용 프로그램의 가능한 모든 경로를 설명합니다.

app.module.ts는 app 모듈을 루트 구성 요소로 설명합니다.

bootstrap.ts는 전체 응용 프로그램을 실행합니다.

webpack 폴더에는 webpack 구성 파일이 들어 있습니다.

package.json 파일은 모든 종속성 목록 용입니다.

카르마에는 단위 테스트를위한 카르마 구성이 포함되어 있습니다.

node_modules 패키지 번들 목록을 포함합니다.

로그인 구성 요소로 시작하십시오. login.component.html에서

<form>Dreamfactory - Addressbook 2.0 
 <label>Email</label> <input id="email" form="" name="email" type="email" /> 
 <label>Password</label> <input id="password" form="" name="password" 
 type="password" /> 
 <button form="">Login</button>
</form>

login.component.ts에서

import { Component } from '@angular/core';
import { Router } from '@angular/router';
import { Form, FormGroup } from '@angular/forms';
import { LoginForm } from '../../models';
import { LoginService } from '../../services/login.service';

@Component({
    selector: 'login',
    template: require('./login.component.html'),
    styles: [require('./login.component.css')]
})
export class LoginComponent {

    constructor(private loginService: LoginService, private router: Router, form: LoginForm) { }

    getLogin(form: LoginForm): void {
      let username = form.email;
      let password = form.password;
      this.loginService.getAuthenticate(form).subscribe(() => {
          this.router.navigate(['/calender']);
      });
    }
}

이 구성 요소를 index.ts에 내 보내야합니다.

export * from './login/login.component';

app.routes.ts에 로그인 할 경로를 설정해야합니다.

const appRoutes: Routes = [
   {
       path: 'login',
       component: LoginComponent
   },
   ........
   {
       path: '',
       pathMatch: 'full',
       redirectTo: '/login'
   }
];

루트 구성 요소에서 app.module.ts 파일을 사용하면 해당 구성 요소를 가져올 수 있습니다.

.....
import { LoginComponent } from './modules';
......
@NgModule({
    bootstrap: [AppComponent],
    declarations: [
       LoginComponent
       .....
       .....
       ]
      ..... 
  })
  export class AppModule { }

그 다음에 npm install과 npm이 시작됩니다. 자,가! 로컬 호스트의 로그인 화면을 확인할 수 있습니다. 어떤 어려움이있을 경우, angular4 - 상용구를 참조 할 수 있습니다.

기본적으로 Angular 4 응용 프로그램을 사용하면 건물 패키지가 줄어들고 응답 속도가 빨라집니다. 코딩에서 Angular 2와 정확히 비슷합니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow