2017-01-10 15 views
1

私はtypescriptでAngular 2を学んでいます。クライアント側のtypescriptコンパイラで角2を使用しています

私の最初のステップは、クライアント側のtypescriptですのコンパイルでシンプルなハロー世界です。 私はWamp 3.0.4も使用しています。

だから私は持っている

index.htmlを

<!DOCTYPE html> 
<html> 
    <head> 
    <title>Hello Angular</title> 
    <meta charset="UTF-8"> 
    <meta name="viewport" content="width=device-width, initial-scale=1"> 
    <style> 
     body {color:#369;font-family: Arial,Helvetica,sans-serif;} 
    </style> 
    <script src="https://unpkg.com/[email protected]/dist/system.js"></script> 
    <script src="https://unpkg.com/[email protected]/Reflect.js"></script> 
    <script src="https://unpkg.com/zone.js/dist/zone.js"></script> 
    <script> 
     System.import('config.js').then(() => { 
     System.import('app') 
     }).catch((err) => { console.error("System.import Error",err) }) 
    </script> 
    </head> 
    <body> 
    <h1>Angular 2 with TypeScript</h1> 
    <my-app>Loading AppComponent content here ...</my-app> 
    </body> 
</html> 

config.jsの

System.config({ 
    transpiler: 'typescript', 
    typescriptOptions: { 
    emitDecoratorMetadata: true 
    }, 
    paths: { 
    'npm:': 'https://unpkg.com/' 
    }, 
    map: { 
    'app': './app', 
    '@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', 
    'rxjs': 'npm:rxjs', 
    'typescript': 'npm:[email protected]/lib/typescript.js' 
    }, 
    packages: { 
    app: { 
     main: './main.ts', 
     defaultExtension: 'ts' 
    } 
}); 

main.ts

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; 
import { AppModule } from './app.module'; 
platformBrowserDynamic().bootstrapModule(AppModule) 

app.module.ts

import {Component,NgModule} from '@angular/core' 
import {BrowserModule} from '@angular/platform-browser' 
@Component({ 
    selector: 'my-app', 
    template: ` 
    <div> 
     <h2>Hello {{name}}</h2> 
    </div> 
    `, 
}) 
export class App { 
    name:string; 
    constructor() { 
    this.name = 'Angular2' 
    } 
} 
@NgModule({ 
    imports: [ BrowserModule ], 
    declarations: [ App ], 
    bootstrap: [ App ] 
}) 
export class AppModule {} 

すべてが必要である場合、私は知らないが...それは働いています。

app.module.tsを今変更すると、<h2>Hello my name is {{name}}</h2>というWebページを更新するときに変更が表示されないという問題があります。それを動作させるには、ブラウザを閉じてページを再度開く必要があります。それはコンパイルが一度だけ行われキャッシュされたようなものです。それはWAMPに問題

ですか?私のアプリケーションで?

+0

クライアント上でJavascriptに変換するWebベースのTypescriptエディタを作成していますか? – Jackalope

答えて

0

私はシステムを使用しませんが、あなたがホットリロードを活性化しなかったようにそれはそうJS。あなたが初心者の方であれば、Webpackはもっと簡単です。私は角度cliを見てみることをお勧めします。とにかく

hereそれはあなたがhot reloaderを使用する必要がありますと言っています。 私はだと思っていますが、私はsystemjを使ったことはありません... wampのためかもしれません。標準設定(ヒント:angular-cli、または角度2のdocのようになります)ファイルはcmdの1つのライナーでなければなりません。起動したばかりのWampや何か変わったものは必要ありません。

0

あなたがapp.module.tsを変更した後、あなたが再び開いた後、あなたが変化を見ることができるので、それは、再コンパイルされます。この変更は、ページを閉じて開くときにのみ機能します。なぜなら、その理由はブラウザキャッシュに関するものだと私は考えています。キャッシュをクリアして更新することができます。そして、再コンパイルには数秒かかるような時間がかかります。

自動コンパイルは、使用するツールによって行われます。私は、テストサーバーを起動するスクリプトを見ていると思います。ウェブパックやスクリプト(公式のチュートリアルのチュートリアルで使用されています)を使用しているかもしれません。

タイプスクリプトコードを自分でコンパイルする場合は、TypeScriptのコマンドツールであるtscを使用できます。

関連する問題