Kick-start: Create a Linux(Ubuntu) Environment for Windows Developers using VirtualBox, VSCode, Git, NodeJS

I enjoy working with Visual Studio Code (VSCode). Since it’s available for Linux and Mac, I thought I would give it a try in a different environment. As a Windows developer, I’ve wanted to try out Linux. In the past when I have attempted to work in Linux, I was overwhelmed with all the tools, configuration and such that must be learned to be productive.

I had a very difficult time finding beginner information that is current of setting up a Linux development environment. I found bits and pieces but nothing that showed end-to-end of how to get started.

In this post, I will describe how to setup a development environment in Linux (Ubuntu). The main technologies I will work with are the following:

  • Oracle VirtualBox – 5.1.14
  • Linux Ubuntu 64-bit: 16.04
  • Visual Studio Code (VSCode): 1.9.1
  • NodeJS: 6.9.5
  • Git: 2.7.4

This post is about setting up a basic Linux (Ubuntu) development environment.  I assume that the user is familiar with Windows and has very basic knowledge of hypervisor software to manage virtual machines.

I’m using Windows 10 as my host system. I don’t believe it should matter what host you are using, because other than VirtualBox, everything in this post will be installed on Linux Ubuntu.

Installing VirtualBox

We need somehow to run Ubuntu. To do this we need a Hypervisor. A hypervisor is software that runs virtual machines. There are many hypervisors available (Hyper-V, VMWare, VirtualBox, etc). I have selected Oracle VirtualBox for the following reasons:

  • Runs on Windows
  • Free for personal use
  • Easy to use
  • Very popular
  • Large Community

Let’s install VirtualBox by going to VirtualBox webpage:

VirtualBaox Download
VirtualBaox Download

Once at the VirtualBox Download webpage, download VirtualBox

After downloading VirtualBox,  install it.

VirtualBaox Install
VirtualBaox Install

 Download Linux Ubuntu Desktop

When we create our virtual machine using VirtualBox we will need an image (iso) of Ubuntu to install. We will get this iso from Ubuntu’s website. It’s important that you download the desktop version of Ubuntu. Download Ubuntu Desktop from here:
Continue reading “Kick-start: Create a Linux(Ubuntu) Environment for Windows Developers using VirtualBox, VSCode, Git, NodeJS”

Visual Studio Code, AngularJs, & Intellisense

My primary goal is to get VSCode intellisense to work with AngularJs.

I’m working on a new application and I’m developing it with AngularJS (Angular 1). I’m also using VSCode (Visual Studio Code) as the IDE. My understanding is that VSCode should provide intellisense for JavaScript code, which it does. In the following image, you can see that VSCode provides intellisense for the variable “d”. VSCode is smart enough to see that this is a string and displays a list of string functions to select from.


Since I’m developing with AngularJS, I would like to have intellisense here also.  In the index.html page, I have reference to my AngularJs library, but in my JavaScript file intellisense is not working as expected.


To get intellisense working for AngularJS in VSCode.  The following steps need to occur

  1. Install node.js typings package globally
  2. Run typings and install AngularJS types
  3. Create a jsconfig.json file

Assumptions of reader

  • Have knowledge of node.js and npm

Tools and version

  • node.js 6.2.1
  • npm 3.9.5
  • Visual Studio Code 1.2
  • Windows

1. The Situation

I’m creating an AngularJS application.  I have two files index.html and module.js.  The index.html file references angular.js library and module.js. The module.js file is where the JavaScript and Angular 1.5 component will live.



By default, VSCode provides intellisense for JavaScript.  In the following image you will notice that the variable “d” is a string and that VSCode provides intellisense  based on the context of “d” being a string.


In module.js, when I enter “angular.” I expect that intellisense to display a list of AngularJS methods and properties, but as you can see in the image below, this does not occur.  My goal in this blog post is to have intellisense display AngularJS methods and properties.


2. Install typings package

The typings package needs to be installed.  Since this package will be used for this solution and others.  I want to install it globally.  First lets’ see what packages are installed currently on the computer.

To figure out what packages are installed globally, run the following command.

npm list -g –depth=0

This command will return all packages at a root depth and not include any children or dependencies of the base packages.


As we can see the typings package has not been install. Let’s install it globally.

npm install -g typings


Now that we installed typings it should now be available to use.  Notice the version of typing is 1.3.0.


3. Install AngularJS types

When I initially attempted to install angular typings, I received the following error (see image). This worked just a few days ago. But I install typings 1.3.0. and my typing install didn’t use the same format as pre typings 1.0 used.  You can read more about that here Updating Typings From 0.x to 1.0?


To install angular typings, I had to enter the following command:

typings install dt~angular –save –global


When the angular typing is installed the typings.json file and a folder called typings should be created.  See image below for more information .


4. Create a jsconfig.json file

Now create an empty jsconfig.json file.


If we were using TypeScript and transpiling code, then this file would contain configuration. But since we are only need intellisense to work, this file can remain empty

5. Validate if Intellisense is working for Angular

Go back to the module.js file. Enter “angular.”.  The intellisense should now display AngularJS methods and properties.