次の階層があります。
定数.ts
export namespace Constants {
export const root = "dist/";
}
app.components.ts
import { Component } from "@angular/core";
@Component({
selector: "my-app",
templateUrl: "dist/views/app.component.html",
})
export class AppComponent {
public name = "Test !";
public lastName = "App !";
}
app.module.ts
import { NgModule } from "@angular/core";
import { BrowserModule } from "@angular/platform-browser";
import { AppComponent } from "./components/app.component";
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ]
})
export class AppModule { }
main.ts
import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";
import { AppModule } from "./app.module";
platformBrowserDynamic().bootstrapModule(AppModule);
gulpfile.js
var ts = require("gulp-typescript");
var tsProject = ts.createProject("tsconfig.json");
gulp.task('build:ts', () => {
log('Compiling TypeScript --> JavaScript');
return tsProject.src()
.pipe(tsProject())
.js.pipe(gulp.dest(config.jsDist));
});
tsconfig.json
{
"include": [
"./App/TypeScript/**/main.ts"
],
"compilerOptions": {
"noImplicitAny": true,
"target": "es6",
"declaration": true,
"sourceMap": true,
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"module": "system",
"out": "main.min.js"
},
"sortOutput": true,
"exclude": [
"node_modules",
"typings/index",
"typings/index.d.ts"
]
}
生成された出力スクリプトでbuild:tsを実行すると、次のような結果が得られます。
System.register("main", ["@angular/platform-browser-dynamic", "app.module"],
function(exports_3, context_3) {..});
ただし、これは、モジュール/名前空間へのインポートがない場合にのみ取得します。
app.components.tsを_
import { Component } from "@angular/core";
//This is the change:
import { Constants } from "../../common/constants/constants";
@Component({
selector: "my-app",
templateUrl: "dist/views/app.component.html",
})
export class AppComponent {
public name = "Test !";
public lastName = "App !";
}
この出力が得られます:
System.register("ui/main", ["@angular/platform-browser-dynamic",
"ui/app.module"], function(exports_4, context_4) { ... });
だから私の質問は:
名前はどのように生成されますか?
インポートがあるとなぜ変化するのですか?