I'm trying Angular2 using Typescript, but I have a problem with tsc.
This is my tsconfig.json file:
{
"compilerOptions": {
"module": "commonjs",
"noImplicitAny": true,
"removeComments": true,
"preserveConstEnums": true,
"out": "compiled.js",
"emitDecoratorMetadata":true,
"target":"es5"
},
"files": [
"ts/_base/_all.ts"
]
}
This is my _all.ts file:
///<reference path="./typings/libs.d.ts"/>
///<reference path="../app.ts"/>
///<reference path="../controllers/loginCtrl.ts"/>
And this is my app controller:
import {Component, View, bootstrap} from 'angular2/angular2';
@Component({
selector: 'my-app'
})
@View({
template: `Hi`
})
class MyAppComponent
{
constructor()
{
}
}
bootstrap(MyAppComponent);
Normally running tsc I get a single output file (compiled.js), but using angular2 I get one .js file for each ts file (so tsc does not merge the output)...
I noticed that the problem is present using the import statement:
import {Component, View, bootstrap} from 'angular2/angular2';
Omitting this line, the output is correctly merged (but without the import I cannot use the module).
What I'm doing wrong?
Normally running tsc I get a single output file (compiled.js), but using angular2 I get one .js file for each ts file (so tsc does not merge the output)...
This is because you are using import
here : import {Component, View, bootstrap} from 'angular2/angular2';
This makes your code an external module (more : https://www.youtube.com/watch?v=KDrWLMUY0R0&hd=1).
Note: I recommend external modules over --out
anyways :https://github.com/TypeStrong/atom-typescript/blob/master/docs/out.md