Code Monkey home page Code Monkey logo

fusebox-angular-universal-starter's Introduction

This project is archived and an improved version has been moved to https://github.com/patrickmichalina/fusing-angular

Introduction

CircleCI codecov dependencies Status devDependencies Status Greenkeeper badge Angular Style Guide Fusebox-bundler

Provides an extremely fast seed project for the development of Angular Universal (isomorphic) projects. Check out the live app

Project Goals

This starter project is designed to get a basic application up and running with basic implementations of core features most applications need. It uses Firebase for the authentication and the database layers.

Note: Firebase doesn't have official support for Angular Universal at this time. However, we have implemented some of the basic features to render and transfer server state to the browser. Once an official support is released, we will use that.

Features

  • Angular as the application framework
  • Angular Material as the UI language and component library
  • Angular Flex Layout for dynamic responsive layouts
  • FuseBox as the TypeScript/JavaScript bundler
  • Jest for unit and component testing
  • Nightmare for UI testing
  • Sparky as the task runner
  • Fully typed build tools using TypeScript
  • Production and development builds
  • Manage your type definitions using @types
  • Simple Heroku Deployment
  • HttpStateTransfer for caching server responses on client boostrap (no flickering)
  • CDN asset configuration
  • Automatic sitemap generation
  • SCSS support for professional grade CSS management
  • Brotli compression with gzip fallback
  • CircleCI unit testing support
  • Full favicon icon generation for multiple devices derived from a single seed image
  • SEO support for Title and Meta tags
  • OG (Open Graph) tags for social sharing
  • Simple Ad-Blocker detection service
  • Vendor-agnostic analytics using angulartics2
  • Generic token based Authentication service with JWT cookie support.
  • Both Client and Server build tasks
  • Hot Module Reloading for faster browser reloads during client development
  • Ahead-of-Time (AOT) compilation support
  • angular-tslint-rules as configuration preset for TSLint and codelyzer.
  • Automatic static file cache invalidation
  • Lazy Loaded modules
  • Analyze bundle sizes by using source-map-explorer
  • Support for Angular Mobile Toolkit (Service Worker)
  • Tree-Shaking for production builds

Built by AngularUniversal.com. For additional help please checkout our services

Quick Start

Note that we strongly recommend node >= v7.0.0 and npm >= 4.0.0.

To start the seed use:

$ git clone --depth 1 https://github.com/patrickmichalina/fusebox-angular-universal-starter
$ cd fusebox-angular-universal-starter

# Add Firebase Admin values to your project
# in a ".env" file for local deveopment
# in environment variables for other environments
See [Environment Variables](#environment-variables)

# install the project's dependencies
$ npm install

# start the Angular Universal server
$ npm start

# start the server while watching tests and updating app documentation
$ npm run start.deving

# start the Angular Universal server w/ AOT build step
$ npm run start.aot
# can also be called passing the parameter --aot
# npm start --aot

# start the application in Client only mode (not server driven), with HMR enabled
$ npm run start.spa

# start the server in production mode
$ npm run start.prod

Table of Contents

Bundling

Checkout how blazing fast bundling can be using FuseBox!

fuse-box

Testing

# single test run
$ npm test 

# single test with coverage results
$ npm run test.coverage

# continuous testing
$ npm run test.watch

# e2e testing (primarilly for CI builds)
$ npm run test.e2e.ci

# continuous e2e testing
$ npm run test.e2e.watch

jest

Configuration

Coming Soon

@Types

When you include a module that doesn't include typings, you can include external type definitions using the npm @types repo.

i.e, to have youtube api support, run this command in terminal:

npm i -D @types/youtube @types/gapi @types/gapi.youtube

Environment Variables

# it is important to set the following environmental variables on your CI server (examples below)
HOST : angular.patrickmichalina.com # the root origin of your application server
CI : true 

# for Heroku Builds
HEROKU : true # to build on heroku, ssl settings are setup using this flag
NPM_CONFIG_PRODUCTION : false # to download all depenedencies on Heroku, including devDependencies

# Firebase Admin SDK
FB_SERVICE_ACCOUNT_PRIVATE_KEY_ID: Some_Secret
FB_SERVICE_ACCOUNT_PRIVATE_KEY: Some_Secret
FB_AUTH_KEY: Some_Secret

File Structure

We use the component approach in our starter. This is the standard for developing Angular apps and a great way to ensure maintainable code

fusebox-angular-universal-starter/
 ├──.fusebox/                       * working folder for the js bundler
 ├──.vscode/                        * Visual Studio Code settings 
 ├──coverage/                       * stores recent reporting of test coverage
 ├──dist/                           * output files that represent the bundled application and its dependencies
 ├──node_modules/                   * project depdendencies
 |
 ├──src/
 |   ├──client/                     * client Angular code. (most your work should be done here)
 |   └──server/                     * server code
 |
 ├──tools/
 |   ├──config/
 |   |   ├──app.config.ts          * configuration interface for the web applications
 |   |   ├──build.config.ts        * configuration values for the build system
 |   |   ├──build.interfaces.ts    * configuration interfaces for the build system
 |   |   └──build.transformer.ts   * build system config transform helper
 |   |
 |   ├──env/
 |   |   ├──base.ts                * base app configuration 
 |   |   ├──dev.ts                 * dev app configuration
 |   |   ├──**.ts                  * arbitrary configuration called via the flag --env-config
 |   |   └──prod.ts                * production app configuration
 |   |
 |   ├──scripts/                   * misc. build helper scripts
 |   ├──tasks/                     * Sparky tasks
 |   ├──test/                      * testing system related configuration
 |   └──web/                       * static assets used for common web functions
 |
 ├──.gitignore                     * GIT settings
 ├──circl.yml                      * CirclCI configuration file
 ├──CODE_OF_CONDUCT.md             * standard code of conduct information
 ├──codecov.yml                    * codecov.io configuration file
 ├──CONTRIBUTING.md                * standard contributor information
 ├──fuse.ts                        * FuseBox entry point
 ├──LICENSE                        * software license
 ├──package-lock.json              * what npm uses to manage it's dependencies
 ├──package.json                   * what npm uses to manage it's dependencies
 ├──Procfile                       * Heroku deployment setting
 ├──README.md                      * project information
 ├──test-report.xml                * JUNIT test results
 ├──tsconfig-aot.json              * typescript config for AOT build using @angular-cli (ngc)
 └──tsconfig.json                  * typescript config

Change Log

You can follow the Angular change log here.

License

MIT

fusebox-angular-universal-starter's People

Contributors

ggarg2 avatar greenkeeper[bot] avatar patrickmichalina avatar scttcper avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

fusebox-angular-universal-starter's Issues

Abstract injection tasks

Instead of the current ad-hoc injection scripts that insert html tags into index.html, lets make an abstraction so we can bundle injections with a fluent api.

Not able to start server in production mode

Hi,

i am getting one issue when i am running this command npm run start.prod

{"name":"Angular Universal App","type":"app","hostname":"goku","pid":14724,"level":50,"err":{"msg":"Uncaught (in promise): Error: Cannot find module './js/bundle-home.module.js'\nError: Cannot find module './js/bundle-home.module.js'\n    at Function.Module._resolveFilename (module.js:485:15)\n    at Function.Module._load (module.js:437:25)\n    at Module.require (module.js:513:17)\n    at require (internal/module.js:11:18)\n    at s (E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:1345:1793)\n    at c (E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:1345:2842)\n    at Function.r.import (E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:1345:3747)\n    at E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:891:29\n    at new ZoneAwarePromise (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\zone.js\\dist\\zone-node.js:861:29)\n    at loadChildren (E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:888:51)\n    at RouterConfigLoader.loadModuleFactory (E:\\dev\\fusebox-angular-universal-starter\\packages\\router\\src\\router_config_loader.ts:61:1)\n    at RouterConfigLoader.load (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\@angular\\router\\bundles\\router.umd.js:4057:52)\n    at MergeMapSubscriber.project (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\@angular\\router\\bundles\\router.umd.js:1835:74)\n    at MergeMapSubscriber._tryNext (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\rxjs\\src\\operator\\mergeMap.ts:125:21)\n    at MergeMapSubscriber._next (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\rxjs\\src\\operator\\mergeMap.ts:115:12)\n    at MergeMapSubscriber.Subscriber.next (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\rxjs\\src\\Subscriber.ts:95:12)","url":"/","stack":"Function.Module._resolveFilename()@module.js:485:15\nFunction.Module._load()@module.js:437:25\nModule.require()@module.js:513:17\nrequire()@internal/module.js:11:18\ns()@E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:1345:1793\nc()@E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:1345:2842\nFunction.r.import()@E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:1345:3747\n{anonymous}()@E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:891:29\nnew ZoneAwarePromise()@E:\\dev\\fusebox-angular-universal-starter\\node_modules\\zone.js\\dist\\zone-node.js:861:29\nloadChildren()@E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:888:51\nRouterConfigLoader.loadModuleFactory()@E:\\dev\\fusebox-angular-universal-starter\\packages\\router\\src\\router_config_loader.ts:61:1\nRouterConfigLoader.load()@E:\\dev\\fusebox-angular-universal-starter\\node_modules\\@angular\\router\\bundles\\router.umd.js:4057:52\nMergeMapSubscriber.project()@E:\\dev\\fusebox-angular-universal-starter\\node_modules\\@angular\\router\\bundles\\router.umd.js:1835:74\nMergeMapSubscriber._tryNext()@E:\\dev\\fusebox-angular-universal-starter\\node_modules\\rxjs\\src\\operator\\mergeMap.ts:125:21\nMergeMapSubscriber._next()@E:\\dev\\fusebox-angular-universal-starter\\node_modules\\rxjs\\src\\operator\\mergeMap.ts:115:12\nMergeMapSubscriber.Subscriber.next()@E:\\dev\\fusebox-angular-universal-starter\\node_modules\\rxjs\\src\\Subscriber.ts:95:12\nresolvePromise()@E:\\dev\\fusebox-angular-universal-starter\\node_modules\\zone.js\\dist\\zone-node.js:795:31\nresolvePromise()@E:\\dev\\fusebox-angular-universal-starter\\node_modules\\zone.js\\dist\\zone-node.js:766:17\n{anonymous}()@E:\\dev\\fusebox-angular-universal-starter\\node_modules\\zone.js\\dist\\zone-node.js:844:17\nZoneDelegate.invokeTask()@E:\\dev\\fusebox-angular-universal-starter\\node_modules\\zone.js\\dist\\zone-node.js:425:31"},"msg":"Uncaught (in promise): Error: Cannot find module './js/bundle-home.module.js'\nError: Cannot find module './js/bundle-home.module.js'\n    at Function.Module._resolveFilename (module.js:485:15)\n    at Function.Module._load (module.js:437:25)\n    at Module.require (module.js:513:17)\n    at require (internal/module.js:11:18)\n    at s (E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:1345:1793)\n    at c (E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:1345:2842)\n    at Function.r.import (E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:1345:3747)\n    at E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:891:29\n    at new ZoneAwarePromise (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\zone.js\\dist\\zone-node.js:861:29)\n    at loadChildren (E:\\dev\\fusebox-angular-universal-starter\\dist\\server.js:888:51)\n    at RouterConfigLoader.loadModuleFactory (E:\\dev\\fusebox-angular-universal-starter\\packages\\router\\src\\router_config_loader.ts:61:1)\n    at RouterConfigLoader.load (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\@angular\\router\\bundles\\router.umd.js:4057:52)\n    at MergeMapSubscriber.project (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\@angular\\router\\bundles\\router.umd.js:1835:74)\n    at MergeMapSubscriber._tryNext (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\rxjs\\src\\operator\\mergeMap.ts:125:21)\n    at MergeMapSubscriber._next (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\rxjs\\src\\operator\\mergeMap.ts:115:12)\n    at MergeMapSubscriber.Subscriber.next (E:\\dev\\fusebox-angular-universal-starter\\node_modules\\rxjs\\src\\Subscriber.ts:95:12)","time":"2017-08-28T06:53:18.369Z","v":0}
[Browsersync] Proxying: http://localhost:8083
[Browsersync] Access URLs:
 --------------------------------------
       Local: http://localhost:8000
    External: http://192.168.0.109:8000
 --------------------------------------
          UI: http://localhost:3001
 UI External: http://192.168.0.109:3001

Third Party Libraries 'export' error.

I added 'ngx-bootstrap' library to my project but it throws 'SyntaxError: Unexpected token export' error.
How do we add third party libraries.

C:\Development\Workspaces\TESTS\cm-web-fusebox\node_modules\ngx-bootstrap\modal\index.js:1
(function (exports, require, module, __filename, __dirname) { export { ModalContainerComponent } from './modal-container.component';
                                                              ^^^^^^

SyntaxError: Unexpected token export
    at createScript (vm.js:74:10)
    at Object.runInThisContext (vm.js:116:10)
    at Module._compile (module.js:537:28)
    at Object.Module._extensions..js (module.js:584:10)
    at Module.load (module.js:507:32)
    at tryModuleLoad (module.js:470:12)
    at Function.Module._load (module.js:462:3)
    at Module.require (module.js:517:17)
    at require (internal/module.js:11:18)
    at u (C:\Development\Workspaces\TESTS\cm-web-fusebox\dist\server.js:2339:1092)

Action required: Greenkeeper could not be activated 🚨

🚨 You need to enable Continuous Integration on all branches of this repository. 🚨

To enable Greenkeeper, you need to make sure that a commit status is reported on all branches. This is required by Greenkeeper because we are using your CI build statuses to figure out when to notify you about breaking changes.

Since we did not receive a CI status on the greenkeeper/initial branch, we assume that you still need to configure it.

If you have already set up a CI for this repository, you might need to check your configuration. Make sure it will run on all new branches. If you don’t want it to run on every branch, you can whitelist branches starting with greenkeeper/.

We recommend using Travis CI, but Greenkeeper will work with every other CI service as well.

Error: ENOENT: no such file or directory, chmod '..\dist\robots.txt'

Hi @patrickmichalina

Sometimes I am getting this error after running npm start.

[email protected] start E:\dev\fusebox-angular-universal-starter
ts-node fuse.ts serve --build-type dev --env-config dev

Launch "serve"
(node:11992) [DEP0022] DeprecationWarning: os.tmpDir() is deprecated. Use os.tmpdir() instead.
Launch "clean"
Launch "web"
→Copy to ./dist
Error: ENOENT: no such file or directory, chmod 'E:\dev\fusebox-angular-universal-starter\dist\robots.txt'

"Cannot find module 'node-zopfli'" error

After the latest update I get "Cannot find module 'node-zopfli'" error.
I think it is related with this issue. #123

Platform : Windows 10
Node version : 8.4.0
Npm version : 5.3.0
Python version : 2.7.13

[Browsersync] Proxying: http://localhost:8001
[Browsersync] Access URLs:
 ------------------------------------
       Local: http://localhost:8000
    External: http://192.168.1.5:8000
 ------------------------------------
          UI: http://localhost:3001
 UI External: http://192.168.1.5:3001
 ------------------------------------
module.js:491
    throw err;
    ^

Error: Cannot find module 'node-zopfli'
    at Function.Module._resolveFilename (module.js:489:15)
    at Function.Module._load (module.js:439:25)
    at Module.require (module.js:517:17)
    at require (internal/module.js:11:18)
    at Object.<anonymous> (C:\Development\Workspaces\TESTS\Universal\patrickmichalina\fusebox-angular-universal-starter\node_modules\shrink-ray\index.js:31:14)
    at Module._compile (module.js:573:30)
    at Object.Module._extensions..js (module.js:584:10)
    at Module.load (module.js:507:32)
    at tryModuleLoad (module.js:470:12)
    at Function.Module._load (module.js:462:3)

Typechecker plugin(async) :App typechecker.
Time:Sun Sep 03 2017 23:58:43 GMT+0300 (Russia TZ 2 Standard Time)
All good, no errors :-)
Typechecking time: 15738ms
Quiting typechecker

killing worker

npm installation fails

npm installation fails below versions.

Platform : Windows 10
Node version : 8.4.0
Npm version : 5.3.0
Python version : 2.7.13

C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter>npm install

> [email protected] install C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-zopfli
> node-pre-gyp install --fallback-to-build

node-pre-gyp ERR! Tried to download(403): https://node-zopfli.s3.amazonaws.com/Release/zopfli-v1.4.0-node-v57-win32-x64.tar.gz
node-pre-gyp ERR! Pre-built binaries not found for [email protected] and [email protected] (node-v57 ABI) (falling back to source compile with node-gyp)
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Platforms\x64\PlatformToolsets\v140\Toolset.targets(36,5): error MSB8036: The Windows SDK version 8.1 was not found. Install
 the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution". [C:\Development\W
orkspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-zopfli\build\zopfli.vcxproj]
gyp ERR! build error
gyp ERR! stack Error: `C:\Program Files (x86)\MSBuild\14.0\bin\msbuild.exe` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onExit (C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-gyp\lib\build.js:258:23)
gyp ERR! stack     at emitTwo (events.js:125:13)
gyp ERR! stack     at ChildProcess.emit (events.js:213:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Windows_NT 10.0.14393
gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Development\\Workspaces\\TESTS\\Universal\\fusebox-angular-universal-starter\\node_modules\\node-gyp\\bin\\node-gyp.js" "build" "--fallback-to-build" "--module=C:\\Development\\Workspaces\\TESTS\\Universal\\fusebox-angular-universal-starter\\node_modules\\node-zopfli\\lib\\binding\\node-v57-win32-x64\\zopfli.node" "--module_name=zopfli" "--module_path=C:\\Development\\Workspaces\\TESTS\\Universal\\fusebox-angular-universal-starter\\node_modules\\node-zopfli\\lib\\binding\\node-v57-win32-x64"
gyp ERR! cwd C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-zopfli
gyp ERR! node -v v8.4.0
gyp ERR! node-gyp -v v3.6.2
gyp ERR! not ok
node-pre-gyp ERR! build error
node-pre-gyp ERR! stack Error: Failed to execute 'C:\Program Files\nodejs\node.exe C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-gyp\bin\node-gyp.js build --fallback-to-build --module=C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-zopfli\lib\binding\node-v57-win32-x64\zopfli.node --module_name=zopfli --module_path=C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-zopfli\lib\binding\node-v57-win32-x64' (1)
node-pre-gyp ERR! stack     at ChildProcess.<anonymous> (C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-pre-gyp\lib\util\compile.js:83:29)
node-pre-gyp ERR! stack     at emitTwo (events.js:125:13)
node-pre-gyp ERR! stack     at ChildProcess.emit (events.js:213:7)
node-pre-gyp ERR! stack     at maybeClose (internal/child_process.js:927:16)
node-pre-gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:211:5)
node-pre-gyp ERR! System Windows_NT 10.0.14393
node-pre-gyp ERR! command "C:\\Program Files\\nodejs\\node.exe" "C:\\Development\\Workspaces\\TESTS\\Universal\\fusebox-angular-universal-starter\\node_modules\\node-pre-gyp\\bin\\node-pre-gyp" "install" "--fallback-to-build"
node-pre-gyp ERR! cwd C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-zopfli
node-pre-gyp ERR! node -v v8.4.0
node-pre-gyp ERR! node-pre-gyp -v v0.6.36
node-pre-gyp ERR! not ok
Failed to execute 'C:\Program Files\nodejs\node.exe C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-gyp\bin\node-gyp.js build --fallback-to-build --module=C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-zopfli\lib\binding\node-v57-win32-x64\zopfli.node --module_name=zopfli --module_path=C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter\node_modules\node-zopfli\lib\binding\node-v57-win32-x64' (1)
npm WARN @angular/[email protected] requires a peer of @angular/core@^4.3.0 but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/common@^4.3.0 but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/core@^4.3.0 but none was installed.
npm WARN @angular/[email protected] requires a peer of @angular/common@^4.3.0 but none was installed.
npm WARN @nguniversal/[email protected] requires a peer of @angular/core@^4.0.0 but none was installed.
npm WARN @nguniversal/[email protected] requires a peer of @angular/platform-server@^4.0.0 but none was installed.
npm WARN @ngx-meta/[email protected] requires a peer of @angular/core@^4.0.0 but none was installed.
npm WARN @ngx-meta/[email protected] requires a peer of @angular/platform-browser@^4.0.0 but none was installed.
npm WARN @ngx-meta/[email protected] requires a peer of @angular/router@^4.0.0 but none was installed.
npm WARN [email protected] requires a peer of @angular/core@^2.0.0||^4.0.0 but none was installed.
npm WARN [email protected] requires a peer of @angular/http@^2.0.0||^4.0.0 but none was installed.
npm WARN [email protected] requires a peer of @angular/compiler@^2.3.1 || >=4.0.0-beta <5.0.0 but none was installed.
npm WARN [email protected] requires a peer of @angular/core@^2.3.1 || >=4.0.0-beta <5.0.0 but none was installed.
npm WARN [email protected] requires a peer of [email protected] but none was installed.
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: [email protected] (node_modules\fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for [email protected]: wanted {"os":"darwin","arch":"any"} (current: {"os":"win32","arch":"x64"})

npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! [email protected] install: `node-pre-gyp install --fallback-to-build`
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     C:\Users\merih\AppData\Roaming\npm-cache\_logs\2017-09-01T14_59_37_299Z-debug.log

C:\Development\Workspaces\TESTS\Universal\fusebox-angular-universal-starter>

create mock HTTP backend interceptor for nightmare UI testing on CI

class MockBackendInterceptor implements HttpInterceptor {
  intercept(req: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
    return new Observable(subscriber => {
      // respond with something
      subscriber.next(new HttpResponse<string>(...));
      subscriber.complete();
    });
  }
}

Ejectable API

Integrate an API structure that includes a few ready made endpoints like authorization.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.