Giter VIP home page Giter VIP logo

generator-hottowel's Introduction

generator-hottowel

NPM version Build Status

Create an Angular application using the HotTowel style (via a Yeoman generator)

Opinionated Angular style guide for teams by @john_papa

More details about the styles and patterns used in this app can be found in my Angular Style Guide and my Angular Patterns: Clean Code course at Pluralsight and working in teams.

Prerequisites

  1. Install Node.js

  2. Install these npm packages globally

    npm install -g yo bower gulp nodemon

    Refer to these instructions on how to not require sudo

QuickStart

  1. Install generator-hottowel

    npm install -g generator-hottowel
  2. Create a new folder and change directory to it

    mkdir myapp
    cd myapp
  3. Run the generator

    yo hottowel helloWorld

HotTowel Options

Application Name

  • Pass in the app's name to avoid being prompted for it

    yo hottowel [appName]

Running HotTowel

Linting

  • Run code analysis using gulp vet. This runs jshint, jscs, and plato.

Tests

  • Run the unit tests using gulp test (via karma, mocha, sinon).

Running in dev mode

  • Run the project with gulp serve-dev

  • opens it in a browser and updates the browser with any files changes.

Building the project

  • Build the optimized project using gulp build
  • This create the optimized code for the project and puts it in the build folder

Running the optimized code

  • Run the optimize project from the build folder with gulp serve-build

Exploring HotTowel

HotTowel Angular starter project

Structure

The structure also contains a gulpfile.js and a server folder. The server is there just so we can serve the app using node. Feel free to use any server you wish.

/src
  /client
    /app
    /content

Installing Packages

When you generate the project it should run these commands, but if you notice missing packages, run these again:

  • npm install
  • bower install

The Modules

The app has 4 feature modules and depends on a series of external modules and custom but cross-app modules

app --> [
        app.admin --> [
            app.core,
            app.widgets
        ],
        app.dashboard --> [
            app.core,
            app.widgets
        ],
        app.layout --> [
            app.core
        ],
        app.widgets,
		app.core --> [
			ngAnimate,
			ngSanitize,
			ui.router,
			blocks.exception,
			blocks.logger,
			blocks.router
		]
    ]

core Module

Core modules are ones that are shared throughout the entire application and may be customized for the specific application. Example might be common data services.

This is an aggregator of modules that the application will need. The core module takes the blocks, common, and Angular sub-modules as dependencies.

blocks Modules

Block modules are reusable blocks of code that can be used across projects simply by including them as dependencies.

blocks.logger Module

The blocks.logger module handles logging across the Angular app.

blocks.exception Module

The blocks.exception module handles exceptions across the Angular app.

It depends on the blocks.logger module, because the implementation logs the exceptions.

blocks.router Module

The blocks.router module contains a routing helper module that assists in adding routes to the $routeProvider.

Gulp Tasks

Task Listing

  • gulp help

    Displays all of the available gulp tasks.

Code Analysis

  • gulp vet

    Performs static code analysis on all javascript files. Runs jshint and jscs.

  • gulp vet --verbose

    Displays all files affected and extended information about the code analysis.

  • gulp plato

    Performs code analysis using plato on all javascript files. Plato generates a report in the reports folder.

Testing

  • gulp serve-specs

    Serves and browses to the spec runner html page and runs the unit tests in it. Injects any changes on the fly and re runs the tests. Quick and easy view of tests as an alternative to terminal via gulp test.

  • gulp test

    Runs all unit tests using karma runner, mocha, chai and sinon with phantomjs. Depends on vet task, for code analysis.

  • gulp test --startServers

    Runs all unit tests and midway tests. Cranks up a second node process to run a server for the midway tests to hit a web api.

  • gulp autotest

    Runs a watch to run all unit tests.

  • gulp autotest --startServers

    Runs a watch to run all unit tests and midway tests. Cranks up a second node process to run a server for the midway tests to hit a web api.

Cleaning Up

  • gulp clean

    Remove all files from the build and temp folders

  • gulp clean-images

    Remove all images from the build folder

  • gulp clean-code

    Remove all javascript and html from the build folder

  • gulp clean-fonts

    Remove all fonts from the build folder

  • gulp clean-styles

    Remove all styles from the build folder

Fonts and Images

  • gulp fonts

    Copy all fonts from source to the build folder

  • gulp images

    Copy all images from source to the build folder

Styles

  • gulp styles

    Compile less files to CSS, add vendor prefixes, and copy to the build folder

Bower Files

  • gulp wiredep

    Looks up all bower components' main files and JavaScript source code, then adds them to the index.html.

    The .bowerrc file also runs this as a postinstall task whenever bower install is run.

Angular HTML Templates

  • gulp templatecache

    Create an Angular module that adds all HTML templates to Angular's $templateCache. This pre-fetches all HTML templates saving XHR calls for the HTML.

  • gulp templatecache --verbose

    Displays all files affected by the task.

Serving Development Code

  • gulp serve-dev

    Serves the development code and launches it in a browser. The goal of building for development is to do it as fast as possible, to keep development moving efficiently. This task serves all code from the source folders and compiles less to css in a temp folder.

  • gulp serve-dev --nosync

    Serves the development code without launching the browser.

  • gulp serve-dev --debug

    Launch debugger with node-inspector.

  • gulp serve-dev --debug-brk

    Launch debugger and break on 1st line with node-inspector.

Building Production Code

  • gulp html

    Optimize all javascript and styles, move to a build folder, and inject them into the new index.html

  • gulp build

    Copies all fonts, copies images and runs gulp html to build the production code to the build folder.

Serving Production Code

  • gulp serve-build

    Serve the optimized code from the build folder and launch it in a browser.

  • gulp serve-build --nosync

    Serve the optimized code from the build folder and manually launch the browser.

  • gulp serve-build --debug

    Launch debugger with node-inspector.

  • gulp serve-build --debug-brk

    Launch debugger and break on 1st line with node-inspector.

Bumping Versions

  • gulp bump

    Bump the minor version using semver. --type=patch // default --type=minor --type=major --type=pre --ver=1.2.3 // specific version

License

MIT

generator-hottowel's People

Contributors

annechinn avatar antonybudianto avatar bampakoa avatar bbodenmiller avatar brandonsherette avatar cgmartin avatar clarkio avatar gerjanonline avatar ghosthamlet avatar gurpreetatwal avatar haikyuu avatar jeroennoten avatar johnpapa avatar manuphatak avatar marknadig avatar moolbits avatar mtmace avatar nickroberts avatar noinarisak avatar nuks avatar ponelat avatar sajadbahar avatar sanderboom avatar ssbrewster avatar technospino avatar timmurphy avatar twalker avatar willbuck avatar zirho 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  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

generator-hottowel's Issues

Please don't recommend `maximum-scale=1.0` and `user-scalable=no`

The index file
https://github.com/johnpapa/generator-hottowel/blob/master/app/templates/src/client/_index.html
recommends to block the user from zooming by means of these declarations:

  <meta name="viewport" content="..., maximum-scale=1.0, user-scalable=no"/>

Please don't!

I have bad eyes and find it really frustrating when sites silently block my attempts to zoom, in order to read them more comfortably for my eyesight. The designer may think the site looks perfect but the user will suffer and leave it for ones who care.

Please read here if this is still not convincing:

http://stackoverflow.com/a/30044183/1614973
http://blog.javierusobiaga.com/stop-using-the-viewport-tag-until-you-know-ho
http://www.lukew.com/ff/entry.asp?1945
http://ux.stackexchange.com/questions/37511/should-users-be-able-to-zoom-in-a-responsive-webdesign

exceptionHandlerProvider test broken

This test is passing, but is testing the wrong item. It should be testing exceptionHandlerProvider.

describe('$exceptionHandler', function() {
it('should have a dummy test', inject(function() {
expect(true).to.equal(true);
}));

    it('should be defined', inject(function($exceptionHandler) {
        expect($exceptionHandler).to.be.defined;
    }));

    it('should have configuration', inject(function($exceptionHandler) {
        alert($exceptionHandler.config);
        expect($exceptionHandler.config).to.be.defined;
    }));

gulp serve-build error

I'm runing Ubuntu 14.10 64Bits. Node.js version is 0.12.2 and NPM version is 2.7.4.

I can't figure out this one, after running either gulp serve-build or just gulp build I get this error:

**PATH-TO-MY-PROJECT**/node_modules/gulp-jscs/index.js:99
            this.emit('error', new gutil.PluginError('gulp-jscs', out.join('\n\n'), {
                                                                      ^
RangeError: Invalid string length
    at Array.join (native)
    at DestroyableTransform._flush (**PATH-TO-MY-PROJECT**/node_modules/gulp-jscs/index.js:99:62)
    at DestroyableTransform.<anonymous> (**PATH-TO-MY-PROJECT**/node_modules/gulp-jscs/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:135:12)
    at DestroyableTransform.g (events.js:199:16)
    at DestroyableTransform.emit (events.js:129:20)
    at finishMaybe (**PATH-TO-MY-PROJECT**/node_modules/gulp-jscs/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:371:12)
    at endWritable (**PATH-TO-MY-PROJECT**/node_modules/gulp-jscs/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:378:3)
    at DestroyableTransform.Writable.end (**PATH-TO-MY-PROJECT**/node_modules/gulp-jscs/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:356:5)
    at DestroyableTransform.onend (**PATH-TO-MY-PROJECT**/node_modules/gulp-jshint/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:523:10)
    at DestroyableTransform.g (events.js:199:16)

I have a JSCS plugin for Sublime Text 3 and I can't find any error in the style. Could anyone give me a hand please?

Modules not loading

Hi John,

I know this is still in the works. I haven't had a chance to try the generator yet. We are on the MS stack so I just took the App folder and implemented it in my MVC project like my last Hottowel / Breeze project but I get this error still.

Here's a link to the angular error:
https://docs.angularjs.org/error/$injector/nomod?p0=app.admin

I wouldn't mind providing you a sample project if your interested. Doesn't really make sense to me why these modules are not getting loaded. I still feel quite new to angular so I'm probably missing something simple.

Error while creating a sample app with yo

I am having the following problem while creating a new sample app with hottowel and yeoman:

npm ERR! [email protected] install: bower install
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the [email protected] install script.
npm ERR! This is most likely a problem with the helloworld package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR! bower install
npm ERR! You can get their info via:
npm ERR! npm owner ls helloworld
npm ERR! There is likely additional logging output above.
npm ERR! System Windows_NT 6.1.7601

npm ERR! node -v v0.10.26
npm ERR! npm -v 1.4.3
npm ERR! code ELIFECYCLE

Thanks.

"Unable to find a suitable version for angular"

I begin to use this generator today and when i tried to scaffold a new app the generator gave me this error:
immagine

is this my pc? in this case, how do i solve it? If not hope it helps to improve this generator. 😄

Menu Design - Support Minimize to Icons Only and Sub Menues

John, thank you for this template to start new projects. I have just switched one of my apps over to use this structure and the modules you have implemented. This will defiantly make the project easier to work on for a team environment.

Could you help with creating a more friendly menu and navigation structure. I need sub menus and the ability to toggle the menu to show icons only so it doesn't take up so much real estate like this angular bootstrap theme ( http://themicon.co/theme/angle/v2.1.1/backend-angular/#/app/dashboard ).

I have manage to get the sub menus to work but feel it was a bit of a hack way to do it and would love to see how you would do it with this setup, still keeping the navigation dynamic by reading the $state config.

Wrong path with serve-build

If I execute the serve-build task the app starts with the wrong path (http://localhost:3000/ & dev index.html) and not (http://localhost:3000/build), but the files in the build folder are generated correctly.

Am I doing something wrong?

//EDIT: The problem is that the node server was started before for a dev build and so I got an EADDRINUSE error. Killing the process helps.

Bug fonts

Change
fonts: directory + 'font-awesome/fonts/.',
to
fonts: bower.directory + 'font-awesome/fonts/.',
in gulp.config.js to get fonts working on build-version.

splash screen

Inside the function hideSplash() (shell.controller.js) there is a timeout of 1 sec with the intention of waiting 1 sec to see the splash screen. But if you change it to 20 sec. (20000) nothing change and the spash screen remains only few moments as before.
bye.

Marco

Error : You don't seem to have a generator with the name hottowel installed.

I followed the instruction to install the hottowel generator but when I try to generate a new app project I have this error :

$ yo hottowel helloWorld
Error hottowel helloWorld 

You don't seem to have a generator with the name hottowel installed.
You can see available generators with npm search yeoman-generator and then install them with npm install [name].

Does someone have an idea of what I have done wrong ?

Better gulpfile proposition

Hello,

I want to say that I really like the generator-hottowel project because I believe that we miss a good angular generator (I have been using yeoman and I think it need some improvement).

I also think it hard to configure gulp when it has been generated. The file is really huge and contains many function. So my proposition is to seperate the tasks in a 'task' directory like it has been done in this repesitory :
https://github.com/pickygoat/picky-gulp

Please, let me know your thought on this.

Update / Fix package.json or gulpfile

I just installed the latest version and tried to run gulp build and gulp serve-dev and had a lot of dependency issues. I was able to get rid of most of them by running npm install on the missing packages but this last one I can't seem to get:

Error: Cannot find module 'caniuse-db/data'

JSCS Rules

Hi John,

There is multiple rule for "disallowMultipleLineStrings", is it intended?

Thank You

Error launching gulp serve-dev

Hi John,

I just started your PluralSight Course - Play by Play: Learning AngularJS With Ken Cenerelli and John Papa.

I have tried generator-hottowel on both windows 7 and Ubuntu 14.04.1 LTS and receive the same error when I launch gulp serve-dev

node - v0.12.0
npm - 2.5.1
yo - 1.4.5
bower - 1.3.12
gulp - 3.8.11

-Chris

 Creating an AngularJS $templateCache
/home/chris/hello/node_modules/gulp-less/index.js:68
    }).done(undefined, cb);
       ^
TypeError: undefined is not a function
'''

Error when running gulp build

When I try to build on my remote server, it fails to build with following log, does anyone how to solve this problem ?

# gulp build                                                                                                           [16:35:46]
[16:35:54] Using gulpfile /opt/www/cc-client/releases/20150318143521/gulpfile.js
[16:35:54] Starting 'wiredep'...
[16:35:54] Wiring the bower dependencies into the html
[16:35:54] Starting 'clean-styles'...
[16:35:54] Cleaning: ./.tmp/**/*.css,./build/styles/**/*.css
[16:35:54] Starting 'clean-code'...
[16:35:54] Cleaning: ./.tmp/**/*.js,./build/js/**/*.js,./build/**/*.html
[16:35:54] Starting 'vet'...
[16:35:54] Analyzing source with JSHint and JSCS
[16:35:55] Starting 'clean-images'...
[16:35:55] Cleaning: ./build/images/**/*.*
[16:35:55] Starting 'clean-fonts'...
[16:35:55] Cleaning: ./build/fonts/**/*.*
[16:35:55] Finished 'clean-images' after 12 ms
[16:35:55] Starting 'images'...
[16:35:55] Compressing and copying images
[16:35:57] Finished 'clean-fonts' after 2.22 s
[16:35:57] Starting 'fonts'...
[16:35:57] Copying fonts
[16:35:57] Finished 'clean-styles' after 3.19 s
[16:35:57] Starting 'styles'...
[16:35:57] Compiling Less --> CSS
[16:35:58] Finished 'clean-code' after 3.68 s
[16:35:58] Starting 'templatecache'...
[16:35:58] Creating an AngularJS $templateCache

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: spawn ENOENT
    at errnoException (child_process.js:1001:11)
    at Process.ChildProcess._handle.onexit (child_process.js:792:34)

gulp-csso is no longer being maintained

Hi John,

Thanks for the great template and style guide!

I just ran into an issue with a project we generated from the template where gulp-csso was choking on a large client-provided CSS file that we were including in the project. After some investigation I found that the underlying issue had already been reported to the csso project that gulp-csso builds on in 2014.

It looks like csso is not being actively maintained anymore, so please consider getting rid of gulp-csso in favor of something that is better maintained?

I was able to get past the hurdle by switching our project to gulp-minify-css which builds on clean-css. Clean-css seems to perform pretty well in benchmarks and appears to be actively maintained, so that may be a good alternative.

I'd be happy to submit a pull request if that would help.

Running build on a server

Hi, this is probably a simple question, but i am obviously missing something here. My understanding is that when i do a 'gulp serve-build' the app runs from the optimized files in the build folder. So my assumption is that if i do a 'gulp build' that i should be able to copy the contents of the build folder and put that on another web server. however when i do that, all that gets served up is an un-styled page with my apps name. what am i missing here? thanks!

gulp-ng-annotate failed

I've just tried to test your generator, and i've seen that "optimize" doesn't work for me.

[18:31:22] gulp-inject 1 files into index.html.
C:\Users\Alliance\Desktop\wwtest\node_modules\gulp-ng-annotate\node_modules\ngannotate\build\es5\ng-annotate-main.js:330
target.$methodName = method.name;
^
TypeError: Cannot assign to read only property '$methodName' of false

i'm on window 8 64b with npm 2.7.4 and node 0.12.2

It seem that gulp-ng-annotate doesn't have the good version of no-annotate.

Just need to upgrade guld-ng-annotate to 0.5.2.

ngLocale Error

Hi Guys

The above error is a difficult nut to crack as already mentioned by John here: http://www.johnpapa.net/easy-fix-to-a-common-angular-module-error/

When I create a Hot Towel generated project it does not run, gulp serve-dev, and the browser complains that there is a module missing. For the life of me I cannot find what this is as I have followed the installation instructions to the letter.

Error Returned: https://docs.angularjs.org/error/$injector/strictdi?p0=function($provide

Can someone help please

Thanx

Marcus

Can't explain how dashboard route is kicking in on application startup

There is a known issue with the angular-router whereby the the initial location change event is missed if ng-view is nested in a partial using ng-include. As far as I can tell, the same issue exists with the angular-ui-router. Hottowel generated apps don't seem to have this issue. I would like to understand how Hottowel works around this issue. If it is a solid workaround and we are not masking the issue, then that's great. Otherwise I would like to see the code restructured to move the top-level ui-view up to index.html.

To reproduce the issue mentioned above, I replaced the blocks.router with a very simple router:

/* app.route.js */
(function() {
    'use strict';

    angular
        .module('app')
        .config(configRouter);

    configRouter.$inject = ['$stateProvider', '$urlRouterProvider'];

    /* @ngInject */
    function configRouter($stateProvider, $urlRouterProvider) {

        // For any unmatched url, redirect to /
        $urlRouterProvider.otherwise('/');

        $stateProvider
            .state('dashboard', {
                url: '/',
                templateUrl: 'app/dashboard/dashboard.html',
                controller: 'DashboardController',
                controllerAs: 'vm'
            })
            .state('admin', {
                url: '/admin',
                templateUrl: 'app/admin/admin.html',
                controller: 'AdminController',
                controllerAs: 'vm'
            });
    }
})();

Since the sidebar is dependent on blocks.router, I hardcoded the links as follows:

<!-- sidebar.html -->
...
<li class="nlightblue fade-selection-animation current">
    <a href="#/">Dashboard</a>
</li>
<li class="nlightblue fade-selection-animation">
    <a href="#/admin">Admin</a>
</li>
...

Now when the app comes up, the dashboard view is not rendered. You must click one of the sidebar links for the view to kick in.

shell.controller.spec.js test appears to fail?

Hi sorry if this is a dumb question but I'm fairly new to all this and I've not done anything with karma or PhantomJS before.

When I build a new project from the generator and then run the tests I see a couple of failures that look like they come from shell.controller.spec.js, specifically:

        it('should show splash screen', function () {
            expect(controller.showSplash).to.be.true;
        });

        it('should hide splash screen after timeout', function (done) {
            $timeout(function() {
                expect(controller.showSplash).to.be.false;
                done();
            }, 1000);
            $timeout.flush();
        });

These seem to error:

PhantomJS 1.9.8 (Windows 7) ShellController Shell controller should show splash screen FAILED
PhantomJS 1.9.8 (Windows 7) ShellController Shell controller should hide splash screen after timeout FAILED

When I look at shell.controller.js this looks as though these values are not being set on the controller but rather on the $rootScope e.g.

Ln 14

        $rootScope.showSplash = true;

Ln 31

        $rootScope.showSplash = false;

I'm fairly new to git as well unfortunately, but as far as I can make out these changes went in as part of Merge pull request #53

I assume the flags have been moved to global scope because that makes them easier to get at from other places? but as far as what to do after that I'm out of my depth....

Guess I need to go read up about karma test specs and global scope

Trying to understand the primary purpose of /src/server directory

Is it to support the development process or to provide a starting point for the real server? I feel that if we eliminate the server directory, the overall project structure can be simplified significantly (following the LIFT principle even further). Instead of

src
|--- client
|    `--- app
`--- server
      `--- ...

we could simply have

src
`--- app

To elaborate, if the purpose of the server is to help with the development process, it might be better to include it in the gulpfile, something like this:

gulp.task('serve', function() {
    var express = require('express');
    var app = express();

    // Serve static content from the /src and /bower_components
    app.use('/', express.static(__dirname + '/src'));
    app.use('/bower_components', express.static(__dirname + '/bower_components'));

    var server = require('http').createServer(app);

    // Start listening
    server.listen(8080);
});

On the other hand, if the purpose is to provide a starting point for a real server, then I feel that it should be a separate project and not intermingled with the client. We have found it to be much more beneficial to build/test the client and the server separately and bring them together (continuously) for integration tests. This approach enforces deeper thinking into the API design and also allows front-end and back-end teams to work more independently.

Anyway, just my thoughts. I am curious to know your thinking behind the current approach.

Thanks in advance for your time.

formatError - gulp.js:169:10

mkdir myapp
cd myapp
yo hottowel helloWorld

 _-----_
|       |    .--------------------------.
|--(o)--|    |  Welcome to the HotTowel |

---------´ | AngularJS generator! | ( _´U_ ) '--------------------------'
/_A\
| ~ |
**'.
**.'__
´ |° ´ Y

Creating helloWorld app based on HotTowel.

Everything Setup !!!

create package.json
create bower.json
create gulpfile.js
create gulp.config.js
create karma.conf.js
create README.md
create gulp.png
create src/client/specs.html
create src/client/app/admin/admin.controller.js
create src/client/app/admin/admin.controller.spec.js
create src/client/app/admin/admin.html
create src/client/app/admin/admin.module.js
create src/client/app/admin/admin.route.js
create src/client/app/admin/admin.route.spec.js
create src/client/app/app.module.js
create src/client/app/blocks/exception/exception-handler.provider.js
create src/client/app/blocks/exception/exception-handler.provider.spec.js
create src/client/app/blocks/exception/exception.js
create src/client/app/blocks/exception/exception.module.js
create src/client/app/blocks/logger/logger.js
create src/client/app/blocks/logger/logger.module.js
create src/client/app/blocks/router/router-helper.provider.js
create src/client/app/blocks/router/router.module.js
create src/client/app/core/404.html
create src/client/app/core/config.js
create src/client/app/core/constants.js
create src/client/app/core/core.module.js
create src/client/app/core/core.route.js
create src/client/app/core/core.route.spec.js
create src/client/app/core/dataservice.js
create src/client/app/dashboard/dashboard.controller.js
create src/client/app/dashboard/dashboard.controller.spec.js
create src/client/app/dashboard/dashboard.html
create src/client/app/dashboard/dashboard.module.js
create src/client/app/dashboard/dashboard.route.js
create src/client/app/dashboard/dashboard.route.spec.js
create src/client/app/layout/ht-sidebar.directive.js
create src/client/app/layout/ht-sidebar.directive.spec.js
create src/client/app/layout/ht-top-nav.directive.js
create src/client/app/layout/ht-top-nav.html
create src/client/app/layout/layout.module.js
create src/client/app/layout/shell.controller.js
create src/client/app/layout/shell.controller.spec.js
create src/client/app/layout/shell.html
create src/client/app/layout/sidebar.controller.js
create src/client/app/layout/sidebar.controller.spec.js
create src/client/app/layout/sidebar.html
create src/client/app/widgets/ht-img-person.directive.js
create src/client/app/widgets/ht-widget-header.directive.js
create src/client/app/widgets/widget-header.html
create src/client/app/widgets/widgets.module.js
create src/client/images/AngularJS-small.png
create src/client/images/busy.gif
create src/client/images/gulp-tiny.png
create src/client/images/icon.png
create src/client/styles/styles.less
create src/client/test-helpers/bind-polyfill.js
create src/client/test-helpers/mock-data.js
create src/client/index.html
create src/server/app.js
create src/server/data.js
create src/server/routes.js
create src/server/utils/404.js
create src/server/favicon.ico
create .editorconfig
create .jshintrc
create .jscsrc
create .bowerrc
npm WARN package.json [email protected] No repository field.
npm WARN package.json [email protected] No license field.
npm WARN deprecated [email protected]: Mocha 2.2.5 already shortens stack traces by default.
npm WARN optional dep failed, continuing [email protected]

[email protected] install /home/docker/client/myapp/node_modules/phantomjs
node install.js

Download already available at /tmp/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2
Extracting tar contents (via spawned process)
Removing /home/docker/client/myapp/node_modules/phantomjs/lib/phantom
Copying extracted folder /tmp/phantomjs/phantomjs-1.9.8-linux-x86_64.tar.bz2-extract-1435871125540/phantomjs-1.9.8-linux-x86_64 -> /home/docker/client/myapp/node_modules/> phantomjs/lib/phantom>
Writing location.js f> ile>
Done. Phantomjs binar> y available at /home/docker/client/myapp/node_modules/phantomjs/lib/phantom/bin/phantomjs>

[email protected] install /home/docker/client/myapp/node_modules/browser-sync/node_modules/socket.io/node_modules/engine.io/node_modules/ws>
(node-gyp rebuild 2> builderror.log) || (exit 0)>

[email protected] postinstall /home/docker/client/myapp/node_modules/gulp-imagemin/node_modules/imagemin/node_modules/imagemin-optipng/node_modules/optipng-bin
node lib/install.js

✔ optipng pre-build test passed successfully

[email protected] postinstall /home/docker/client/myapp/node_modules/gulp-imagemin/node_modules/imagemin/node_modules/imagemin-gifsicle/node_modules/gifsicle
node lib/install.js

✔ gifsicle pre-build test passed successfully

[email protected] postinstall /home/docker/client/myapp/node_modules/gulp-imagemin/node_modules/imagemin/node_modules/imagemin-jpegtran/node_modules/jpegtran-bin
node lib/install.js

✔ jpegtran pre-build test passed successfully

[email protected] postinstall /home/docker/client/myapp/node_modules/gulp-imagemin/node_modules/imagemin/node_modules/imagemin-pngquant/node_modules/pngquant-bin
node lib/install.js

✔ pngquant pre-build test passed successfully

[email protected] install /home/docker/client/myapp/node_modules/browser-sync/node_modules/socket.io/node_modules/socket.io-client/node_modules/engine.io-client/node_modules/ws
(node-gyp rebuild 2> builderror.log) || (exit 0)

[email protected] install /home/docker/client/myapp/node_modules/karma/node_modules/socket.io/node_modules/socket.io-client/node_modules/ws
(node-gyp rebuild 2> builderror.log) || (exit 0)

|
|

bower install

bower sinon#* cached http://sinonjs.org/releases/sinon-1.12.1.js#e-tag:2081df-2c
bower sinon#* validate e-tag:2081df-2c against http://sinonjs.org/releases/sinon-1.12.1.js#*
bower angular-sanitize#~1.3.8 cached git://github.com/angular/bower-angular-sanitize.git#1.3.16
bower angular-sanitize#~1.3.8 validate 1.3.16 against git://github.com/angular/bower-angular-sanitize.git#~1.3.8
bower angular#~1.3.8 cached git://github.com/angular/bower-angular.git#1.3.16
bower angular#~1.3.8 validate 1.3.16 against git://github.com/angular/bower-angular.git#~1.3.8
bower jquery#~2.1.0 cached git://github.com/jquery/jquery.git#2.1.4
bower jquery#~2.1.0 validate 2.1.4 against git://github.com/jquery/jquery.git#~2.1.0
bower extras.angular.plus#~0.9.2 cached git://github.com/AngularPlus/AngularPlus.git#0.9.2
bower extras.angular.plus#~0.9.2 validate 0.9.2 against git://github.com/AngularPlus/AngularPlus.git#~0.9.2
bower font-awesome#~4.2.0 cached git://github.com/FortAwesome/Font-Awesome.git#4.2.0
bower font-awesome#~4.2.0 validate 4.2.0 against git://github.com/FortAwesome/Font-Awesome.git#~4.2.0
bower moment#~2.6.0 cached git://github.com/moment/moment.git#2.6.0
bower moment#~2.6.0 validate 2.6.0 against git://github.com/moment/moment.git#~2.6.0
bower angular-ui-router#~0.2.12 cached git://github.com/angular-ui/ui-router.git#0.2.15
bower angular-ui-router#~0.2.12 validate 0.2.15 against git://github.com/angular-ui/ui-router.git#~0.2.12
bower bootstrap#~3.2.0 cached git://github.com/twbs/bootstrap.git#3.2.0
bower bootstrap#~3.2.0 validate 3.2.0 against git://github.com/twbs/bootstrap.git#~3.2.0
bower toastr#~2.1.0 cached git://github.com/johnpapa/toastr-bower.git#2.1.1
bower toastr#~2.1.0 validate 2.1.1 against git://github.com/johnpapa/toastr-bower.git#~2.1.0
bower bardjs#~0.1.0 cached git://github.com/wardbell/bardjs.git#0.1.4
bower bardjs#~0.1.0 validate 0.1.4 against git://github.com/wardbell/bardjs.git#~0.1.0
bower angular-animate#~1.3.8 cached git://github.com/angular/bower-angular-animate.git#1.3.16
bower angular-animate#~1.3.8 validate 1.3.16 against git://github.com/angular/bower-angular-animate.git#~1.3.8
bower angular-mocks#~1.3.8 cached git://github.com/angular/bower-angular-mocks.git#1.3.16
bower angular-mocks#~1.3.8 validate 1.3.16 against git://github.com/angular/bower-angular-mocks.git#~1.3.8
bower angular#>= 1.0.8 cached git://github.com/angular/bower-angular.git#1.4.1
bower angular#>= 1.0.8 validate 1.4.1 against git://github.com/angular/bower-angular.git#>= 1.0.8
bower angular-mocks#>=1.3.8 cached git://github.com/angular/bower-angular-mocks.git#1.4.1
bower angular-mocks#>=1.3.8 validate 1.4.1 against git://github.com/angular/bower-angular-mocks.git#>=1.3.8

Unable to find a suitable version for angular, please choose one:
1) angular#1.3.16 which resolved to 1.3.16 and is required by angular-animate#1.3.16, angular-mocks#1.3.16, angular-sanitize#1.3.16
2) angular#~1.3.8 which resolved to 1.3.16 and is required by helloWorld
3) angular#>=1.2.25 <1.4.0 which resolved to 1.3.16 and is required by extras.angular.plus#0.9.2
4) angular#>=1.3.8 which resolved to 1.3.16 and is required by bardjs#0.1.4
5) angular#>= 1.0.8 which resolved to 1.4.1 and is required by angular-ui-router#0.2.15
6) angular#1.4.1 which resolved to 1.4.1 and is required by angular-mocks#1.4.1

Prefix the choice with ! to persist it to bower.json

? Answer: 2
bower sinon#* install sinon#e-tag:2081df-2c
bower extras.angular.plus#~0.9.2 install extras.angular.plus#0.9.2
bower font-awesome#~4.2.0 install font-awesome#4.2.0
bower angular-sanitize#~1.3.8 install angular-sanitize#1.3.16
bower angular-ui-router#~0.2.12 install angular-ui-router#0.2.15
bower moment#~2.6.0 install moment#2.6.0
bower jquery#~2.1.0 install jquery#2.1.4
bower angular#~1.3.8 install angular#1.3.16
bower bardjs#~0.1.0 install bardjs#0.1.4
bower toastr#~2.1.0 install toastr#2.1.1
bower bootstrap#~3.2.0 install bootstrap#3.2.0
bower angular-animate#~1.3.8 install angular-animate#1.3.16
bower angular-mocks#~1.3.8 install angular-mocks#1.3.16
bower postinstall gulp wiredep
bower postinstall [21:06:17]
bower postinstall Using gulpfile ~/client/myapp/gulpfile.js
bower postinstall [21:06:17]
bower postinstall Starting 'wiredep'...
bower postinstall [21:06:17] Wiring the bower dependencies into the html
bower postinstall [21:06:17]
bower postinstall gulp-inject 27 files into index.html.
bower postinstall [21:06:17]
bower postinstall Finished 'wiredep' after 190 ms

sinon#e-tag:2081df-2c bower_components/sinon

extras.angular.plus#0.9.2 bower_components/extras.angular.plus
└── angular#1.3.16

font-awesome#4.2.0 bower_components/font-awesome

angular-sanitize#1.3.16 bower_components/angular-sanitize
└── angular#1.3.16

angular-ui-router#0.2.15 bower_components/angular-ui-router
└── angular#1.3.16

moment#2.6.0 bower_components/moment

jquery#2.1.4 bower_components/jquery

angular#1.3.16 bower_components/angular

bardjs#0.1.4 bower_components/bardjs
├── angular#1.3.16
├── angular-mocks#1.3.16
└── sinon#e-tag:2081df-2c

toastr#2.1.1 bower_components/toastr
└── jquery#2.1.4

bootstrap#3.2.0 bower_components/bootstrap
└── jquery#2.1.4

angular-animate#1.3.16 bower_components/angular-animate
└── angular#1.3.16

angular-mocks#1.3.16 bower_components/angular-mocks
└── angular#1.3.16
[email protected] node_modules/karma-phantomjs-launcher

[email protected] node_modules/karma-sinon

[email protected] node_modules/karma-mocha

[email protected] node_modules/karma-safari-launcher

[email protected] node_modules/karma-firefox-launcher

[email protected] node_modules/gulp-task-listing

[email protected] node_modules/karma-chai

[email protected] node_modules/karma-chai-sinon

[email protected] node_modules/sinon-chai

[email protected] node_modules/chai-as-promised

[email protected] node_modules/mocha-clean

[email protected] node_modules/minimist

[email protected] node_modules/method-override
└── [email protected]

[email protected] node_modules/serve-favicon
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected]

[email protected] node_modules/debug
└── [email protected]

[email protected] node_modules/q

[email protected] node_modules/chalk
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
└── [email protected] ([email protected])

[email protected] node_modules/gulp-print
├── [email protected]
└── [email protected]

[email protected] node_modules/karma-growl-reporter
└── [email protected]

[email protected] node_modules/morgan
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected] ([email protected])

[email protected] node_modules/gulp-bytediff
├── [email protected]
└── [email protected]

[email protected] node_modules/jshint-stylish
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules/del
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected])

[email protected] node_modules/karma-chrome-launcher
└── [email protected] ([email protected])

[email protected] node_modules/yargs

[email protected] node_modules/gulp-order
├── [email protected]
└── [email protected] ([email protected], [email protected])

[email protected] node_modules/gulp-inject
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules/gulp-filter
├── [email protected] ([email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected])

[email protected] node_modules/gulp-rev
├── [email protected]
└── [email protected] ([email protected], [email protected])

[email protected] node_modules/gulp-plumber
└── [email protected] ([email protected], [email protected])

[email protected] node_modules/gulp-sourcemaps
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected])

[email protected] node_modules/gulp-angular-templatecache
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected])

[email protected] node_modules/gulp-bump
├── [email protected]
└── [email protected] ([email protected], [email protected])

[email protected] node_modules/gulp-header
├── [email protected]
└── [email protected] ([email protected], [email protected])

[email protected] node_modules/glob
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected])

[email protected] node_modules/dateformat
├── [email protected]
└── [email protected] ([email protected], [email protected], [email protected])

[email protected] node_modules/gulp-util
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], lodash.escape@3.> 0.0, [email protected], [email protected])>
├── [email protected] ([email protected], [email protected].> 1)>
└── [email protected] ([email protected])>

[email protected] node_modules/body-parser
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected]

[email protected] node_modules/gulp-if
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected])

[email protected] node_modules/chai
├── [email protected]
└── [email protected] ([email protected])

[email protected] node_modules/gulp-load-plugins
├── [email protected] ([email protected], [email protected], [email protected])
└── [email protected] ([email protected])

[email protected] node_modules/express
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected])

[email protected] node_modules/gulp-rev-replace
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules/gulp-concat
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected])

[email protected] node_modules/lodash

[email protected] node_modules/mocha
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected])

[email protected] node_modules/gulp
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules/gulp-uglify
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

[email protected] node_modules/gulp-minify-css
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected])

[email protected] node_modules/phantomjs
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], node-> [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])>

[email protected] node_modules/sinon
├── [email protected]
├── [email protected]
├── [email protected]
└── [email protected] ([email protected])

[email protected] node_modules/gulp-useref
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], glob-watcher@0.> 0.8)>
└── > [email protected]>

[email protected] node_modules/wiredep
├── [email protected]
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

[email protected] node_modules/node-notifier
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected])

[email protected] node_modules/gulp-imagemin
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected].> 0, [email protected], [email protected], [email protected], [email protected])>

[email protected] node_modules/browser-sync
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules/gulp-ng-annotate
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], ordered-ast-> [email protected], [email protected], [email protected], [email protected])>

[email protected] node_modules/karma-coverage
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], > [email protected], [email protected], [email protected], [email protected])>

[email protected] node_modules/gulp-nodemon
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected])

[email protected] node_modules/gulp-minify-html
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules/gulp-jscs
├── [email protected]
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], cli-> [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])>

[email protected] node_modules/gulp-jshint
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected]
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

[email protected] node_modules/gulp-autoprefixer
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
└── [email protected] ([email protected], [email protected])

[email protected] node_modules/karma
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], on-> [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], > [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected]> .0)
├── [email protected] ([email protected], [email protected], [email protected])>
├── [email protected]>
├── [email protected]> ([email protected], [email protected], [email protected], [email protected])>
└── [email protected]> .16 ([email protected], [email protected], [email protected], [email protected])>

[email protected] node_modules/plato
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected])
├── [email protected] ([email protected], [email protected], [email protected])
├── [email protected]
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], > [email protected], [email protected], [email protected], [email protected])>

[email protected] node_modules/gulp-less
├── [email protected]
├── [email protected] ([email protected], [email protected])
├── [email protected] ([email protected])
├── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])
└── [email protected] ([email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected], [email protected])

gulp test

[21:18:01] Using gulpfile ~/client/myapp/gulpfile.js
[21:18:01] Starting 'vet'...
[21:18:01] Analyzing source with JSHint and JSCS
[21:18:01] Starting 'clean-code'...
[21:18:01] Cleaning: ./.tmp//*.js,./build/js//.js,./build/__/.html
[21:18:01] Finished 'clean-code' after 19 ms
[21:18:01] Starting 'templatecache'...
[21:18:01] Creating an AngularJS $templateCache
[21:18:02] Finished 'templatecache' after 716 ms
[21:18:03] Finished 'vet' after 1.89 s
[21:18:03] Starting 'test'...
WARN [config]: "/" is proxied, you should probably change urlRoot to avoid conflicts
WARN [watcher]: Pattern "/home/docker/client/myapp/src/client/tests/server-integration/*/.spec.js" does not match any file.
INFO [karma]: Karma v0.12.37 server started at http://localhost:9876/
INFO [launcher]: Starting browser PhantomJS
ERROR [launcher]: Cannot start PhantomJS

INFO [launcher]: Trying to start PhantomJS again (1/2).
ERROR [launcher]: Cannot start PhantomJS

INFO [launcher]: Trying to start PhantomJS again (2/2).
ERROR [launcher]: Cannot start PhantomJS

ERROR [launcher]: PhantomJS failed 2 times (cannot start). Giving up.
[21:18:04] Karma completed
[21:18:04] 'test' errored after 1.16 s
[21:18:04] Error: karma: tests failed with code 1
at formatError (/usr/lib/node_modules/gulp/bin/gulp.js:169:10)
at Gulp. (/usr/lib/node_modules/gulp/bin/gulp.js:195:15)
at Gulp.emit (events.js:107:17)
at Gulp.Orchestrator._emitTaskDone (/home/docker/client/myapp/node_modules/gulp/node_modules/orchestrator/index.js:264:8)
at /home/docker/client/myapp/node_modules/gulp/node_modules/orchestrator/index.js:275:23
at finish (/home/docker/client/myapp/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:21:8)
at cb (/home/docker/client/myapp/node_modules/gulp/node_modules/orchestrator/lib/runTask.js:29:3)
at karmaCompleted (/home/docker/client/myapp/gulpfile.js:593:13)
at removeAllListeners (/home/docker/client/myapp/node_modules/karma/lib/server.js:215:7)
at Server. (/home/docker/client/myapp/node_modules/karma/lib/server.js:226:9)
at Server.g (events.js:199:16)
at Server.emit (events.js:129:20)
at net.js:1419:10
at process._tickCallback (node.js:355:11)

npm -v

2.11.2

node -v

v0.12.5

Question : Not working in Windows7

I have reinstalled it several time and always get this error in windows7 when running test or serve-build:

[08:36:22] Error: karma: tests failed with code 1
  at formatError (C:\Users\iadefa\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js:169:10)
  at Gulp.<anonymous> (C:\Users\iadefa\AppData\Roaming\npm\node_modules\gulp\bin\gulp.js:195:15)
  at Gulp.emit (events.js:107:17)
  at Gulp.Orchestrator._emitTaskDone (D:\personal\bitbucket\hottowel\node_modules\gulp\node_modules\orchestrator\index.js:264:8)
  at D:\personal\bitbucket\hottowel\node_modules\gulp\node_modules\orchestrator\index.js:275:23
  at finish (D:\personal\bitbucket\hottowel\node_modules\gulp\node_modules\orchestrator\lib\runTask.js:21:8)
  at cb (D:\personal\bitbucket\hottowel\node_modules\gulp\node_modules\orchestrator\lib\runTask.js:29:3)
  at karmaCompleted (D:\personal\bitbucket\hottowel\gulpfile.js:597:13)
  at removeAllListeners (D:\personal\bitbucket\hottowel\node_modules\karma\lib\server.js:220:7)
  at Server.<anonymous> (D:\personal\bitbucket\hottowel\node_modules\karma\lib\server.js:231:9)
  at Server.g (events.js:199:16)
  at Server.emit (events.js:129:20)
  at net.js:1392:10
  at process._tickCallback (node.js:355:11)

Earlier I can see that some test are failing:

�[1A�[2K�[31mPhantomJS 1.9.7 (Windows 7) ShellController Shell controller should show splash screen FAILED�[39m
    AssertionError: expected undefined to be true
        at D:/personal/bitbucket/hottowel/node_modules/chai/chai.js:873
        at D:/personal/bitbucket/hottowel/node_modules/chai/chai.js:1176
        at D:/personal/bitbucket/hottowel/node_modules/chai/chai.js:3549
PhantomJS 1.9.7 (Windows 7): Executed 35 of 39�[31m (1 FAILED)�[39m (0 secs / 0.118 secs)
�[1A�[2K�[31mPhantomJS 1.9.7 (Windows 7) ShellController Shell controller should hide splash screen after timeout FAILED�[39m
    [hottowel Error] expected undefined to be false
    AssertionError: expected undefined to be false
        at D:/personal/bitbucket/hottowel/node_modules/chai/chai.js:873
        at D:/personal/bitbucket/hottowel/node_modules/chai/chai.js:1201
        at D:/personal/bitbucket/hottowel/node_modules/chai/chai.js:3549
PhantomJS 1.9.7 (Windows 7): Executed 36 of 39�[31m (2 FAILED)�[39m (0 secs / 0.119 secs)

I have installed exactly as described in the guide except node is not installed with chocolatey, I have it already installed.
What am I doing wrong ?

Issue connecting to debugger

gulp serve-build --debug

results in

[gulp] [nodemon] v1.2.1
[gulp] [nodemon] to restart at any time, enter rs
[gulp] [nodemon] watching: C:\Users\taylosim\testapp3\src\server/*/
[gulp] [nodemon] starting node true=5858 ./src/server/app.js
[21:44:45] Starting BrowserSync on port 8001

module.js:340
throw err;
^
Error: Cannot find module 'C:\Users\taylosim\testapp3\true=5858'
at Function.Module._resolveFilename (module.js:338:15)
at Function.Module._load (module.js:280:25)
at Function.Module.runMain (module.js:497:10)
at startup (node.js:119:16)
at node.js:929:3

I didnt install node js from chocolatey on windows.
Other than this all instructs followed.
Any thoughts?

bower ECMDERR when running 'yo hottowel helloWorld'

I am sure I am the only one experiencing this, but I wondered if anyone had insight into why it happened

bower ECMDERR

Failed to execute "gulp wiredep", exit code of #1 /Users/{me}/testsite/node_modules/lodash/dist/lodash.js:4726 });

SyntaxError: Unexpected token )
at exports.runInThisContext (vm.js:73:16)
at Module._compile (module.js:443:25)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Module.require (module.js:365:17)
at require (module.js:384:17)
at Object. (/Users/trevorallen/testsite/node_modules/browser-sync/node_modules/dev-ip/lib/dev-ip.js:13:9)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)

Test not working while following pluralsight training

Test fails because there is no .jscsrc file, it's missing in your repository. Not a big deal obviously, i can create one but just letting you know. Also, if you add it to the repository it might fix issues related to issue#92. Just a guess.

Question - How to Add Web API Backend?

Hey John,

First I want to say that I love your Pluralsight Courses. Also, thanks for all of your hard work on the Hottowel project. I finally got it working. I just installed the generator locally instead of using the -g option. I still don't know why that isn't working.

Anyways, I know that this isn't the right place to ask but I didn't know where else to go. I have used your generator-aspnet to crease a Web API project, and I have used your generator-hottowel to make an angular project. What is the easiest way to make these two work together? I want a single project that has the hottowel angular for the front end and the web api controllers for the back-end. What is the best way to approach this?

Ideally I would like to get this project deployed to either Digital Ocean or Azure Ubuntu vm.

I'm new to the whole yeoman and linux world. I'm coming from a Visual Studio/Windows world.

Thanks!
Jeremy

Wiredep task does not consistently order app script file list in index.html

  1. Issue
  2. Reason
  3. Possible solution

Issue

If I run gulp wiredep without making any changes to the code, it will - most of the time - change the order of app script tags in index.html - which I think it shouldn't since we didn't make any changes to our code.

Reason

Apparently the reason is because the order of files in gulp.src(config.js) is not consistent.

As a test, I created jslist task and ran it a few times:

gulp.task('jslist', function() {
    return gulp
        .src(config.js)
        .pipe(require('gulp-debug')());
});

First run:

$ gulp jslist
[14:28:23] Using gulpfile d:\GitHub\Hottowel\gulpfile.js
[14:28:23] Starting 'jslist'...
[14:28:23] gulp-debug: src\client\app\app.module.js
[14:28:23] gulp-debug: src\client\app\admin\admin.module.js
[14:28:23] gulp-debug: src\client\app\core\core.module.js
[14:28:23] gulp-debug: src\client\app\dashboard\dashboard.module.js
[14:28:23] gulp-debug: src\client\app\layout\layout.module.js
[14:28:23] gulp-debug: src\client\app\widgets\widgets.module.js
. . . . . . . . .
[14:28:23] gulp-debug: 27 items
[14:28:23] Finished 'jslist' after 64 ms

Second run - layout and widgets modules are swapped

$ gulp jslist
[14:28:16] Using gulpfile d:\github\Hottowel\gulpfile.js
[14:28:16] Starting 'jslist'...
[14:28:16] gulp-debug: src\client\app\app.module.js
[14:28:16] gulp-debug: src\client\app\admin\admin.module.js
[14:28:16] gulp-debug: src\client\app\core\core.module.js
[14:28:16] gulp-debug: src\client\app\dashboard\dashboard.module.js
[14:28:16] gulp-debug: src\client\app\widgets\widgets.module.js
[14:28:16] gulp-debug: src\client\app\layout\layout.module.js
. . . . . . . . .
[14:28:16] gulp-debug: 27 items
[14:28:16] Finished 'jslist' after 62 ms

Possible solution

I tried adding gulp-sort and config.jsOrder in gulp.config.js and it seemed to work well. Reusing config.js for gulp-sort did not seem to sort things at all.

// gulp.config.js#34
js: [
    clientApp + '/**/*.module.js',
    clientApp + '/**/*.js',
    '!' + clientApp + '/**/*.spec.js'
],
jsOrder: [
    'app.module.js',
    '**/*.module.js',
    '**/*.js'
]
// gulpfile.js#125
gulp.task('wiredep', function() {
    log('Wiring the bower dependencies into the html');

    var wiredep = require('wiredep').stream;
    var options = config.getWiredepDefaultOptions();

    return gulp
        .src(config.index)
        .pipe(wiredep(options))
        .pipe($.inject(gulp.src(config.js).pipe(config.jsOrder))) //sort the files before injecting
        .pipe(gulp.dest(config.client));
});

Build version does not load js/app.js or styles/app.css

Hello John,

Thanks for the great template. I've ran into issues when using >>gulp serve-build, minified app.js and app.css files aren't loading. The fix for this would be editing generator-hottowel/app/templates/src/client/_index.html L20 and L45, we simply need to add a space after the minified file name otherwise it thinks that --> is part of the file name.

Thanks,
Dmitriy

Missing widget ht-widget-minimize

Hi John,

Everything working great!

Just thought I'd let ya know, that the ht-widget-minimize directive is missing from the template, thought I'd let ya know :)

Question about ng-annotate ?

I was wondering why there are $inject defined everywhere and then the /* @ngInject */ statement used. As I understand the whole point of using /* @ngInject */ is to generate that for you right ? So why they are defined manually everywhere ?

logger.$inject = ['$log', 'toastr'];

/* @ngInject */
function logger($log, toastr) {})

jQuery test failure after upgrading to Angular 1.4

I now receive this test error after upgrading to Angular 1.4. Any thoughts on how to fix?

PhantomJS 1.9.7 (Windows 7 0.0.0) htSidebar directive: when animating w/ jQuery fx off click triggers "when-done-animating" expression FAILED
AssertionError: expected spy to have been called with arguments 42
at C:/Projects/htAngular1.4/node_modules/chai/chai.js:873
at C:/Projects/htAngular1.4/node_modules/sinon-chai/lib/sinon-chai.js:95
at C:/Projects/htAngular1.4/node_modules/chai/chai.js:3627
at C:/Projects/htAngular1.4/src/client/app/layout/ht-sidebar.directive.spec.js:116

busy.gif

In shell.html

<img src="../../content/images/busy.gif"/>
should be:
<img src="../../images/busy.gif"/>>

Tests require BardJS

When initially running gulp test I get the error
ReferenceError: Can't find variable: bard

I had to manually copy and paste the bard.js file from its repo. I may have done something wrong or the documentation is missing a step. Either way I wanted to give you a heads up.

Environment configuration separation

Hi,

I'm using several environments for projects, such as dev, QA, preprod and production. Each has its own backend api server and other settings that are specific for each environment.

Currently, the config value is set in the core config file. Since that file is minified with the rest of the app, it's hard to change the configuration of the app on the fly. Also, each deployment of the app overwrites the config, so it has to be set before build for each environment.

I think a solution similar to web.config of ASP.NET would be great here. A file that can be updated after the application is built and without having to rebuild the app for each environment. This way the config file can be set once for each environment.

I was thinking about either using a json file that would load during application start or creating a file with a module and a value that is not minified during the build and would remain referenced as is so it can be changed on the server and not redeployed every time.

The first solution is a bit problematic since we don't have access to $http during config and the second one I'm not sure how to implement due to the complexity of the build process. Can't quite figure out how to tell gulp to inject the file but not alter it in any way.

What do you think?

Decouple HTML Structure from CSS Structure

Leverage the power of CSS pre-processor and decouple HTML structure from CSS. Here are a good set of Guidelines to start with: http://cssguidelin.es/

IE dashboard.html:

...
<div class="row">
  <div class="col-md-12">
// Apply these styles in pre processor. Will make it more mantainable in the future if 
// you wanted to change dashboard layout or switch to another css library.
...

Another thing to consider

blightblue
b[someColor]
// What if you want to change the styles of lightblue to something else?
// blightblue would no longer accurately describe what it does causing confusion.

// instead
primary-color
primary-color--30  // 30% alpha
secondary-color
...

Webstorm 9x Live Edit & Debug Support

G'Day John, I followed your post on No-Sudo, configured as instructed, then installed generator-hottowel, all works great from terminal using gulp tasks etc, however my IDE on OSX is the latest version/build of WebStorm 9 and I think you sometimes use this too. Anyhow.... I can't seem to use the debugger or live edit in webstorm with hottowel, either the debugger icon is disabled or when I run the app via webstorm (not gulp) the hottowel page does not render, blank page, just some unstyled text title like "Hot Towel". Could gulp be getting in the way? I'm not looking to build at present, I just want to develop views, controllers etc and run/debug from webstorm. Any thoughts? Cheers Paul

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.