Skip to content

jpwiddy/NgDotNetCore

Repository files navigation

Features

Pre-requisites

  1. .Net core sdk
  2. Either VSCode with C# extension OR Visual studio 2015 update 4 with .Net Core tooling
  3. Nodejs

Make sure you have Node version >= 6.0 and NPM >= 3

Installation

1. Clone the repo
    git clone https://github.com/jpwiddy/NgDotNetCore

2. Change directory to our repo
    cd NgDotNetCore

3. dotnet restore

4. Install global dependencies
    npm install --global webpack typescript protractor rimraf 

5. npm install
    Note: On Windows machines (Visual Studio 15), there tends to be issues with the `node-sass` plugin
    if VS automagically installs your node dependencies for you. TLDR it'll be complaining about
    architecture not matching bindings. If this is the case, please do the following:
        > rm node_modules # or just delete then manually via file browser
        > npm install # manually install deps
        > npm rebuild node-sass

6. Create webpack vendor manifest file for fast webpack rebuilds
    For Development: 
        > npm run build:dev
    For Production: 
        > npm run build:prod 

8. Run the app:
    Note: To setup Development build with HMR, first run in dev console- 
        Windows:
            `set ASPNETCORE_ENVIRONMENT=Development`
        *nix/OSX:
            `export ASPNETCORE_ENVIRONMENT=Development`
    Two ways to run:
        1) `dotnet run` (for single run) OR `dotnet watch run` (in watch mode)
        2) Just F5 key if you are using VS code editor or Visual Studio IDE

9. Browse using http://localhost:5000 or http://localhost:5001 

Other commands

run Angular 2 tests

npm run test
# this will also create coverage remaped to typescript files in coverage folder after test run completes

watch and run Angular 2 tests

npm run watch:test

Typescript documentation

npm run docs
# this will create documentation in doc folder at the root location (open index.html file) 

run end-to-end tests

# make sure you have your server running in another terminal (i.e run "dotnet run" command)
# AND make sure your webdrivers are updated
npm run e2e

run webdriver (for end-to-end)

npm run webdriver:update
npm run webdriver:start

run Protractor's elementExplorer (for end-to-end)

npm run webdriver:start
# in another terminal
npm run e2e:live