Getting Started With Angular 2 Using Visual Studio Code

In this article, I am going to explain firstly how to configure an Application architecture, using Angular2 with Visual Studio code. In this, I am using systemjs.config.js to load modules compiled, using TypeScript compiler. There are lots of ways to load the modules in Angularjs2 e.g Webpack, Gulp, Grunt, etc. but I am going to develop an example, using systemjs.config.json.

 
Prerequisites to setup and create Angular.js 2 Application
If you have installed already, then there is no need to install it again.Try to start developing an Application on Angular2.
You just need to follow few simple steps to develop Angular2 Application.
 
Step 1

Create a folder in your local drive, where you want keep your code. If you already have any project folder, just open Visual Studio code and select the folder.

Step 2

Now, create package.json file in your project folder. See the code and copy. 
  1. {    
  2.     "name""angular-quickstart",    
  3.     "version""1.0.0",    
  4.     "scripts": {    
  5.         "start""tsc&& concurrently \"tsc -w\" \"lite-server\" ",    
  6.         "lite""lite-server",    
  7.         "postinstall""typings install",    
  8.         "tsc""tsc",    
  9.         "tsc:w""tsc -w",    
  10.         "typings""typings"    
  11.     },    
  12.     "licenses": [{    
  13.         "type""MIT",    
  14.         "url""https://github.com/angular/angular.io/blob/master/LICENSE"    
  15.     }],    
  16.     "dependencies": {    
  17.         "@angular/common""~2.1.0",    
  18.         "@angular/compiler""~2.1.0",    
  19.         "@angular/core""~2.1.0",    
  20.         "@angular/forms""~2.1.0",    
  21.         "@angular/http""~2.1.0",    
  22.         "@angular/platform-browser""~2.1.0",    
  23.         "@angular/platform-browser-dynamic""~2.1.0",    
  24.         "@angular/router""~3.1.0",    
  25.         "@angular/upgrade""~2.1.0",    
  26.     
  27.         "angular-in-memory-web-api""~0.1.5",    
  28.         "bootstrap""^3.3.7",    
  29.         "core-js""^2.4.1",    
  30.         "reflect-metadata""^0.1.8",    
  31.         "rxjs""5.0.0-beta.12",    
  32.         "systemjs""0.19.39",    
  33.         "zone.js""^0.6.25"    
  34.     },    
  35.     "devDependencies": {    
  36.         "concurrently""^3.0.0",    
  37.         "lite-server""^2.2.2",    
  38.         "typescript""^2.0.3",    
  39.         "typings""^1.4.0"    
  40.     }    
  41. }  
In package.json, you need to add the dependencies of your project. You can change project.json file, as per your project's need.
 
Step 3

Create file tsconfig.json. This file is used to compile TypeScript code. See the code given below.
  1. {    
  2.     "compilerOptions": {    
  3.         "target""es5",    
  4.         "module""commonjs",    
  5.         "moduleResolution""node",    
  6.         "sourceMap"true,    
  7.         "emitDecoratorMetadata"true,    
  8.         "experimentalDecorators"true,    
  9.         "removeComments"false,    
  10.         "noImplicitAny"false,  
  11.         "watch"true   
  12.     } ,  
  13.     "compileOnSave"true   
  14. }  
"complieOnSave"  is used to compile the code, once you save or CTRL+S.
 
Step 4

Create typings.json. This file contains TypeScript compiler libraries. See the code given below.
  1. {    
  2.     "globalDependencies": {    
  3.         "core-js""registry:dt/core-js#0.0.0+20160725163759",    
  4.         "jasmine""registry:dt/jasmine#2.2.0+20160621224255",    
  5.         "node""registry:dt/node#6.0.0+20160909174046"    
  6.     }    
  7. }  
Step 5

Create an app folder. Now, your project will look, as shown below.

 

Ignore other given file for o now.
 
Step 6

Now, you need to install dependencies, using npm command. Open the integrated terminal from view tab or CTRL+` and go to the project path. Type npm command "npm install" and wait for 1-2 minutes. Thereafter, node_module and typing folder will be created automatically inside the project.
 
Step 7

Create systemjs.config.js to load modules, as shown below. 
  1. /**  
  2.  * System configuration for Angular samples  
  3.  * Adjust as necessary for your application needs.  
  4.  */    
  5. (function(global) {    
  6.     System.config({    
  7.         paths: {    
  8.             // paths serve as alias    
  9.             'npm:''node_modules/'    
  10.         },    
  11.         // map tells the System loader where to look for things    
  12.         map: {    
  13.             // our app is within the app folder    
  14.             app: 'app',    
  15.     
  16.             // angular bundles    
  17.             '@angular/core''npm:@angular/core/bundles/core.umd.js',    
  18.             '@angular/common''npm:@angular/common/bundles/common.umd.js',    
  19.             '@angular/compiler''npm:@angular/compiler/bundles/compiler.umd.js',    
  20.             '@angular/platform-browser''npm:@angular/platform-browser/bundles/platform-browser.umd.js',    
  21.             '@angular/platform-browser-dynamic''npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js',    
  22.             '@angular/http''npm:@angular/http/bundles/http.umd.js',    
  23.             '@angular/router''npm:@angular/router/bundles/router.umd.js',    
  24.             '@angular/forms''npm:@angular/forms/bundles/forms.umd.js',    
  25.     
  26.             // other libraries    
  27.             'rxjs''npm:rxjs',    
  28.             'angular-in-memory-web-api''npm:angular-in-memory-web-api',    
  29.         },    
  30.         // packages tells the System loader how to load when no filename and/or no extension    
  31.         packages: {    
  32.             app: {    
  33.                 main: './main.js',    
  34.                 defaultExtension: 'js'    
  35.             },    
  36.             rxjs: {    
  37.                 defaultExtension: 'js'    
  38.             },    
  39.             'angular-in-memory-web-api': {    
  40.                 main: './index.js',    
  41.                 defaultExtension: 'js'    
  42.             }    
  43.         }    
  44.     });    
  45. })(this);    
Inside this file, required dependecy and modules are loaded.
 
Step 8

Inside an app folder, create component name as app.component.ts, as shown below.
  1. import { Component } from '@angular/core';  
  2. @Component({  
  3.   selector: 'my-app',  
  4.   template:'<h1>Hello C# corner</h1>'  
  5. })  
  6. export class AppComponent { }   
Step 9

Create module name as app.module.ts, as shown below.
  1. import { NgModule    
  2. } from '@angular/core';    
  3. import {    
  4.     BrowserModule    
  5. } from '@angular/platform-browser';    
  6. import {    
  7.     AppComponent    
  8. } from './app.component';    
  9.     
  10. @NgModule({    
  11.     imports: [BrowserModule],    
  12.     declarations: [AppComponent],    
  13.     bootstrap: [AppComponent]    
  14. })    
  15. export class AppModule {}  
Step 10

Now, create main.ts file, as shown below.
  1. import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';  
  2.   
  3. import { AppModule } from './app.module';  
  4.   
  5. const platform = platformBrowserDynamic();  
  6. platform.bootstrapModule(AppModule);  
In main.ts file, register your module.
 
Step 11

Create an index.html, as shown below.
  1. <html>  
  2.   <head>  
  3.     <title>My First AngularJs 2 Application</title>  
  4.     <meta charset="UTF-8">  
  5.     <meta name="viewport" content="width=device-width, initial-scale=1">  
  6.     <!--<link rel="stylesheet" href="styles.css">-->  
  7.  <base href="/">  
  8.    
  9.     <!-- 1. Load libraries -->  
  10.      <!-- Polyfill(s) for older browsers -->  
  11.     <script src="node_modules/core-js/client/shim.min.js"></script>  
  12.   
  13.     <script src="node_modules/zone.js/dist/zone.js"></script>  
  14.     <script src="node_modules/reflect-metadata/Reflect.js"></script>  
  15.     <script src="node_modules/systemjs/dist/system.src.js"></script>  
  16.   
  17.     <!-- 2. Configure SystemJS -->  
  18.     <script src="systemjs.config.js"></script>  
  19.     <script>  
  20.       System.import('app/app.main.js').catch(function(err){ console.error(err); });  
  21.     </script>  
  22.   </head>  
  23.   
  24.   <!-- 3. Display the application -->  
  25.   <body>  
  26.     <my-app>Loading...</my-app>  
  27.   </body>  
  28. </html>  
Inside index.html, call main.js, followed by compile ts file into js. You can see <my-app> loading...</my-app> is a component selector. You can use it well anywhere.
 
Step 12

Project Setup and an Application is done. Now, we have to configure launc.json and task.json to run the task. 

Visual Studio Code uses launch.json and tasks.json file to launch your Angular2 Application.

launch.json

First, press F1 or CTRL+SHIFT+P in Visual Studio code and type launch in the address bar on the top of the editor, select node.js file from the selection list. Once you select launch.json file, it will be created under .vscode folder.

In order to launch Angular2 Application, launch.json will use the lite-Server, which is defined in node_modules. Change the program property from “${workspaceRoot}/app.js” to “${workspaceRoot}/node_modules/lite-server/bin/lite-server”.

tasks.json

Press F1 or CTRL+SHIFT+P and type “task”, select “Configure Task runner” and subsequently use Typescript-Watch Mode.This will create tasks.json, which will be created under .vscode folder.

Remove the arguments from argsproperty, as we don’t require it now and add new property as “watch”:true. Now, we are ready to run Application. To start an Application, type "npm start" command. After build completes, click F5. For more details, go to my GitHub and download the code using git command. To get the code in your local drive, use git command :: "git clone https://github.com/Bikeshs/Angular2-Typescript" therefater run "npm install".

Remember, don't forget install npm,git. 

Conslusion

After running the Application, you will see like magic because all ts file has been compiled into JS file and inside the app folder, all ts file make js file, using tsc compiler. 


Similar Articles