mirror of
https://github.com/akveo/ngx-admin.git
synced 2025-12-17 07:50:12 +01:00
Merge branch 'develop/readme'
This commit is contained in:
commit
4c4dcfef32
2 changed files with 35 additions and 335 deletions
369
README.md
369
README.md
|
|
@ -1,347 +1,46 @@
|
||||||
[](https://twitter.com/SwiftOnSecurity)
|
# Admin HTML template based on Angular 2, Bootstrap 4 and Webpack
|
||||||
[](https://github.com/auchenberg/volkswagen) [](https://badge.fury.io/gh/angularclass%2Fangular2-webpack-starter) [](https://david-dm.org/angularclass/angular2-webpack-starter)
|
|
||||||
[](http://issuestats.com/github/angularclass/angular2-webpack-starter)
|
|
||||||
[](http://issuestats.com/github/angularclass/angular2-webpack-starter) [](http://stackshare.io/angularclass/angular-2-webpack-starter)
|
|
||||||
|
|
||||||
<p align="center">
|
Admin template made with ♥ by [Akveo team](http://akveo.com/). Follow us on [Twitter](https://twitter.com/akveo_inc) to get latest news about this template first!
|
||||||
<a href="https://angularclass.com" target="_blank">
|
|
||||||
<img src="https://cloud.githubusercontent.com/assets/1016365/9863762/a84fed4a-5af7-11e5-9dde-d5da01e797e7.png" alt="Webpack and Angular 2" width="500" height="320"/>
|
|
||||||
</a>
|
|
||||||
</p>
|
|
||||||
|
|
||||||
# Angular2 Webpack Starter [](https://angularclass.com/slack-join) [](https://gitter.im/angularclass/angular2-webpack-starter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
## Demo
|
||||||
|
|
||||||
|
TODO: demo link
|
||||||
|
|
||||||
> An Angular 2 starter kit featuring [Angular 2](https://angular.io) ([Router](https://angular.io/docs/js/latest/api/router/), [Forms](https://angular.io/docs/js/latest/api/forms/),
|
## Angular 1.x version
|
||||||
[Http](https://angular.io/docs/js/latest/api/http/),
|
Here you can find Angular 1.x based version: [Blur Admin](http://akveo.github.io/blur-admin/).
|
||||||
[Services](https://gist.github.com/gdi2290/634101fec1671ee12b3e#_follow_@AngularClass_on_twitter),
|
|
||||||
[Tests](https://angular.io/docs/js/latest/api/test/), [E2E](https://angular.github.io/protractor/#/faq#what-s-the-difference-between-karma-and-protractor-when-do-i-use-which-)), [Material](https://github.com/angular/material2), [Karma](https://karma-runner.github.io/), [Protractor](https://angular.github.io/protractor/), [Jasmine](https://github.com/jasmine/jasmine), [Istanbul](https://github.com/gotwarlost/istanbul), [TypeScript](http://www.typescriptlang.org/), [Typings](https://github.com/typings/typings), [TsLint](http://palantir.github.io/tslint/), [Codelyzer](https://github.com/mgechev/codelyzer), [Hot Module Replacement](https://webpack.github.io/docs/hot-module-replacement-with-webpack.html), and [Webpack](http://webpack.github.io/) by [AngularClass](https://angularclass.com).
|
|
||||||
|
|
||||||
> If you're looking for Angular 1.x please use [NG6-starter](https://github.com/angularclass/NG6-starter)
|
## Based on
|
||||||
|
Angular 2, Bootstrap 4, Webpack and lots of awesome modules and plugins.
|
||||||
|
|
||||||
> If you're looking to learn about Webpack and ES6 Build Tools check out [ES6-build-tools](https://github.com/AngularClass/ES6-build-tools)
|
## Documentation
|
||||||
|
Installation, customization and other useful articles: https://akveo.github.io/ng2-admin/
|
||||||
|
|
||||||
> If you're looking to learn TypeScript see [TypeStrong/learn-typescript](https://github.com/TypeStrong/learn-typescript)
|
## How can I support developers?
|
||||||
|
- Star our GitHub repo
|
||||||
|
- Create pull requests, submit bugs, suggest new features or documentation updates
|
||||||
|
- Follow us on [Twitter](https://twitter.com/akveo_inc)
|
||||||
|
- Like our page on [Facebook](https://www.facebook.com/akveo/)
|
||||||
|
|
||||||
> If you're looking for Webpack 2 version then see the experimental version [angular2-webpack2-starter](https://github.com/gdi2290/angular2-webpack2-starter) that will be merged
|
## Can I hire you guys?
|
||||||
|
Yes! We are available for hire. Visit [our homepage](http://akveo.com/) or simply leave us a note to [contact@akveo.com](mailto:contact@akveo.com). We will be happy to work with you!
|
||||||
|
|
||||||
> If you're looking for something easier to get started with then see the offical angular2-seed that I also maintain [angular/angular2-seed](https://github.com/angular/angular2-seed)
|
## Features
|
||||||
|
* TypeScript
|
||||||
|
* Webpack
|
||||||
|
* Responsive layout
|
||||||
|
* High resolution
|
||||||
|
* Bootstrap 4 CSS Framework
|
||||||
|
* Sass
|
||||||
|
* Angular 2
|
||||||
|
* jQuery
|
||||||
|
* Charts (Chartist, Chart.js)
|
||||||
|
* Maps (Google, Leaflet, amMap)
|
||||||
|
* and many more!
|
||||||
|
|
||||||
This seed repo serves as an Angular 2 starter for anyone looking to get up and running with Angular 2 and TypeScript fast. Using a [Webpack](http://webpack.github.io/) for building our files and assisting with boilerplate. We're also using Protractor for our end-to-end story and Karma for our unit tests.
|
##License
|
||||||
* Best practices in file and application organization for Angular 2.
|
[MIT](LICENSE.txt) license.
|
||||||
* Ready to go build system using Webpack for working with TypeScript.
|
|
||||||
* Angular 2 examples that are ready to go when experimenting with Angular 2.
|
|
||||||
* A great Angular 2 seed repo for anyone who wants to start their project.
|
|
||||||
* Testing Angular 2 code with Jasmine and Karma.
|
|
||||||
* Coverage with Istanbul and Karma
|
|
||||||
* End-to-end Angular 2 code using Protractor.
|
|
||||||
* Type manager with Typings
|
|
||||||
* Hot Module Replacement with Webpack
|
|
||||||
* Material Design with [angular/material2](https://github.com/angular/material2)
|
|
||||||
|
|
||||||
### Quick start
|
### From akveo
|
||||||
**Make sure you have Node version >= 4.0 and NPM >= 3**
|
|
||||||
> Clone/Download the repo then edit `app.ts` inside [`/src/app/app.ts`](/src/app/app.ts)
|
|
||||||
|
|
||||||
```bash
|
Enjoy!
|
||||||
# clone our repo
|
We're always happy to hear your feedback.
|
||||||
# --depth 1 removes all but one .git commit history
|
|
||||||
git clone --depth 1 https://github.com/angularclass/angular2-webpack-starter.git
|
|
||||||
|
|
||||||
# change directory to our repo
|
|
||||||
cd angular2-webpack-starter
|
|
||||||
|
|
||||||
# add required global libraries
|
|
||||||
npm install typings webpack-dev-server rimraf webpack -g
|
|
||||||
|
|
||||||
# install the repo with npm
|
|
||||||
npm install
|
|
||||||
|
|
||||||
# start the server
|
|
||||||
npm start
|
|
||||||
|
|
||||||
# use Hot Module Replacement
|
|
||||||
npm run server:dev:hmr
|
|
||||||
|
|
||||||
# if you're in China use cnpm
|
|
||||||
# https://github.com/cnpm/cnpm
|
|
||||||
```
|
|
||||||
go to [http://0.0.0.0:3000](http://0.0.0.0:3000) or [http://localhost:3000](http://localhost:3000) in your browser
|
|
||||||
|
|
||||||
# Table of Contents
|
|
||||||
* [File Structure](#file-structure)
|
|
||||||
* [Getting Started](#getting-started)
|
|
||||||
* [Dependencies](#dependencies)
|
|
||||||
* [Installing](#installing)
|
|
||||||
* [Running the app](#running-the-app)
|
|
||||||
* [Configuration](#configuration)
|
|
||||||
* [Contributing](#contributing)
|
|
||||||
* [TypeScript](#typescript)
|
|
||||||
* [Typings](#typings)
|
|
||||||
* [Frequently asked questions](#frequently-asked-questions)
|
|
||||||
* [Support, Questions, or Feedback](#support-questions-or-feedback)
|
|
||||||
* [License](#license)
|
|
||||||
|
|
||||||
|
|
||||||
## File Structure
|
|
||||||
We use the component approach in our starter. This is the new standard for developing Angular apps and a great way to ensure maintainable code by encapsulation of our behavior logic. A component is basically a self contained app usually in a single file or a folder with each concern as a file: style, template, specs, e2e, and component class. Here's how it looks:
|
|
||||||
```
|
|
||||||
angular2-webpack-starter/
|
|
||||||
├──config/ * our configuration
|
|
||||||
| ├──helpers.js * helper functions for our configuration files
|
|
||||||
| ├──spec-bundle.js * ignore this magic that sets up our angular 2 testing environment
|
|
||||||
| ├──karma.conf.js * karma config for our unit tests
|
|
||||||
| ├──protractor.conf.js * protractor config for our end-to-end tests
|
|
||||||
│ ├──webpack.dev.js * our development webpack config
|
|
||||||
│ ├──webpack.prod.js * our production webpack config
|
|
||||||
│ └──webpack.test.js * our testing webpack config
|
|
||||||
│
|
|
||||||
├──src/ * our source files that will be compiled to javascript
|
|
||||||
| ├──main.browser.ts * our entry file for our browser environment
|
|
||||||
│ │
|
|
||||||
| ├──index.html * Index.html: where we generate our index page
|
|
||||||
│ │
|
|
||||||
| ├──polyfills.ts * our polyfills file
|
|
||||||
│ │
|
|
||||||
| ├──vendor.ts * our vendor file
|
|
||||||
│ │
|
|
||||||
│ ├──app/ * WebApp: folder
|
|
||||||
│ │ ├──app.spec.ts * a simple test of components in app.ts
|
|
||||||
│ │ ├──app.e2e.ts * a simple end-to-end test for /
|
|
||||||
│ │ └──app.ts * App.ts: a simple version of our App component components
|
|
||||||
│ │
|
|
||||||
│ └──assets/ * static assets are served here
|
|
||||||
│ ├──icon/ * our list of icons from www.favicon-generator.org
|
|
||||||
│ ├──service-worker.js * ignore this. Web App service worker that's not complete yet
|
|
||||||
│ ├──robots.txt * for search engines to crawl your website
|
|
||||||
│ └──human.txt * for humans to know who the developers are
|
|
||||||
│
|
|
||||||
│
|
|
||||||
├──tslint.json * typescript lint config
|
|
||||||
├──typedoc.json * typescript documentation generator
|
|
||||||
├──tsconfig.json * config that webpack uses for typescript
|
|
||||||
├──typings.json * our typings manager
|
|
||||||
└──package.json * what npm uses to manage it's dependencies
|
|
||||||
```
|
|
||||||
|
|
||||||
# Getting Started
|
|
||||||
## Dependencies
|
|
||||||
What you need to run this app:
|
|
||||||
* `node` and `npm` (`brew install node`)
|
|
||||||
* Ensure you're running the latest versions Node `v4.x.x`+ (or `v5.x.x`) and NPM `3.x.x`+
|
|
||||||
|
|
||||||
Once you have those, you should install these globals with `npm install --global`:
|
|
||||||
* `webpack` (`npm install --global webpack`)
|
|
||||||
* `webpack-dev-server` (`npm install --global webpack-dev-server`)
|
|
||||||
* `karma` (`npm install --global karma-cli`)
|
|
||||||
* `protractor` (`npm install --global protractor`)
|
|
||||||
* `typings` (`npm install --global typings`)
|
|
||||||
* `typescript` (`npm install --global typescript`)
|
|
||||||
|
|
||||||
## Installing
|
|
||||||
* `fork` this repo
|
|
||||||
* `clone` your fork
|
|
||||||
* `npm install` to install all dependencies
|
|
||||||
* `typings install` to install necessary typings
|
|
||||||
* `npm run server` to start the dev server in another tab
|
|
||||||
|
|
||||||
## Running the app
|
|
||||||
After you have installed all dependencies you can now run the app. Run `npm run server` to start a local server using `webpack-dev-server` which will watch, build (in-memory), and reload for you. The port will be displayed to you as `http://0.0.0.0:3000` (or if you prefer IPv6, if you're using `express` server, then it's `http://[::1]:3000/`).
|
|
||||||
|
|
||||||
### server
|
|
||||||
```bash
|
|
||||||
# development
|
|
||||||
npm run server
|
|
||||||
# production
|
|
||||||
npm run build:prod
|
|
||||||
npm run server:prod
|
|
||||||
```
|
|
||||||
|
|
||||||
## Other commands
|
|
||||||
|
|
||||||
### build files
|
|
||||||
```bash
|
|
||||||
# development
|
|
||||||
npm run build:dev
|
|
||||||
# production
|
|
||||||
npm run build:prod
|
|
||||||
```
|
|
||||||
|
|
||||||
### hot module replacement
|
|
||||||
```bash
|
|
||||||
npm run server:dev:hmr
|
|
||||||
```
|
|
||||||
|
|
||||||
### watch and build files
|
|
||||||
```bash
|
|
||||||
npm run watch
|
|
||||||
```
|
|
||||||
|
|
||||||
### run tests
|
|
||||||
```bash
|
|
||||||
npm run test
|
|
||||||
```
|
|
||||||
|
|
||||||
### watch and run our tests
|
|
||||||
```bash
|
|
||||||
npm run watch:test
|
|
||||||
```
|
|
||||||
|
|
||||||
### run end-to-end tests
|
|
||||||
```bash
|
|
||||||
# make sure you have your server running in another terminal
|
|
||||||
npm run e2e
|
|
||||||
```
|
|
||||||
|
|
||||||
### run webdriver (for end-to-end)
|
|
||||||
```bash
|
|
||||||
npm run webdriver:update
|
|
||||||
npm run webdriver:start
|
|
||||||
```
|
|
||||||
|
|
||||||
### run Protractor's elementExplorer (for end-to-end)
|
|
||||||
```bash
|
|
||||||
npm run webdriver:start
|
|
||||||
# in another terminal
|
|
||||||
npm run e2e:live
|
|
||||||
```
|
|
||||||
|
|
||||||
# Configuration
|
|
||||||
Configuration files live in `config/` we are currently using webpack, karma, and protractor for different stages of your application
|
|
||||||
|
|
||||||
# Contributing
|
|
||||||
You can include more examples as components but they must introduce a new concept such as `Home` component (separate folders), and Todo (services). I'll accept pretty much everything so feel free to open a Pull-Request
|
|
||||||
|
|
||||||
# TypeScript
|
|
||||||
> To take full advantage of TypeScript with autocomplete you would have to install it globally and use an editor with the correct TypeScript plugins.
|
|
||||||
|
|
||||||
## Use latest TypeScript compiler
|
|
||||||
TypeScript 1.7.x includes everything you need. Make sure to upgrade, even if you installed TypeScript previously.
|
|
||||||
|
|
||||||
```
|
|
||||||
npm install --global typescript
|
|
||||||
```
|
|
||||||
|
|
||||||
## Use a TypeScript-aware editor
|
|
||||||
We have good experience using these editors:
|
|
||||||
|
|
||||||
* [Visual Studio Code](https://code.visualstudio.com/)
|
|
||||||
* [Webstorm 10](https://www.jetbrains.com/webstorm/download/)
|
|
||||||
* [Atom](https://atom.io/) with [TypeScript plugin](https://atom.io/packages/atom-typescript)
|
|
||||||
* [Sublime Text](http://www.sublimetext.com/3) with [Typescript-Sublime-Plugin](https://github.com/Microsoft/Typescript-Sublime-plugin#installation)
|
|
||||||
|
|
||||||
# Typings
|
|
||||||
> When you include a module that doesn't include Type Definitions inside of the module you need to include external Type Definitions with Typings
|
|
||||||
|
|
||||||
## Use latest Typings module
|
|
||||||
```
|
|
||||||
npm install --global typings
|
|
||||||
```
|
|
||||||
|
|
||||||
## Custom Type Definitions
|
|
||||||
When including 3rd party modules you also need to include the type definition for the module
|
|
||||||
if they don't provide one within the module. You can try to install it with typings
|
|
||||||
|
|
||||||
```
|
|
||||||
typings install node --save
|
|
||||||
```
|
|
||||||
|
|
||||||
If you can't find the type definition in the registry we can make an ambient definition in
|
|
||||||
this file for now. For example
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
declare module "my-module" {
|
|
||||||
export function doesSomething(value: string): string;
|
|
||||||
}
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
If you're prototyping and you will fix the types later you can also declare it as type any
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
declare var assert: any;
|
|
||||||
```
|
|
||||||
|
|
||||||
If you're importing a module that uses Node.js modules which are CommonJS you need to import as
|
|
||||||
|
|
||||||
```typescript
|
|
||||||
import * as _ from 'lodash';
|
|
||||||
```
|
|
||||||
|
|
||||||
You can include your type definitions in this file until you create one for the typings registry
|
|
||||||
see [typings/registry](https://github.com/typings/registry)
|
|
||||||
|
|
||||||
# Frequently asked questions
|
|
||||||
* What's the current browser support for Angular 2 Beta?
|
|
||||||
* Please view the updated list of [browser support for Angular 2](https://github.com/angularclass/awesome-angular2#current-browser-support-for-angular-2)
|
|
||||||
* Why is my service, aka provider, is not injecting parameter correctly?
|
|
||||||
* Please use `@Injectable()` for your service for typescript to correctly attach the metadata (this is a TypeScript problem)
|
|
||||||
* How do I run protractor with node 0.12.x?
|
|
||||||
* please check out this repo to use the old version of protractor [#146](https://github.com/AngularClass/angular2-webpack-starter/pull/146/files)
|
|
||||||
* Where do I write my tests?
|
|
||||||
* You can write your tests next to your component files. See [`/src/app/home/home.spec.ts`](/src/app/home/home.spec.ts)
|
|
||||||
* How do I start the app when I get `EACCES` and `EADDRINUSE` errors?
|
|
||||||
* The `EADDRINUSE` error means the port `3000` is currently being used and `EACCES` is lack of permission for webpack to build files to `./dist/`
|
|
||||||
* How to use `sass` for css?
|
|
||||||
* `loaders: ['raw-loader','sass-loader']` and `@Component({ styles: [ require('./filename.scss') ] })` see issue [#136](https://github.com/AngularClass/angular2-webpack-starter/issues/136)
|
|
||||||
* How do I test a Service?
|
|
||||||
* See issue [#130](https://github.com/AngularClass/angular2-webpack-starter/issues/130#issuecomment-158872648)
|
|
||||||
* How do I add `vscode-chrome-debug` support?
|
|
||||||
* The VS Code chrome debug extension support can be done via `launch.json` see issue [#144](https://github.com/AngularClass/angular2-webpack-starter/issues/144#issuecomment-164063790)
|
|
||||||
* How do I make the repo work in a virtual machine?
|
|
||||||
* You need to use `0.0.0.0` so revert these changes [#205](https://github.com/AngularClass/angular2-webpack-starter/pull/205/files)
|
|
||||||
* What are the naming conventions for Angular 2?
|
|
||||||
* please see issue [#185](https://github.com/AngularClass/angular2-webpack-starter/issues/185) and PR [196](https://github.com/AngularClass/angular2-webpack-starter/pull/196)
|
|
||||||
* How do I include bootstrap or jQuery?
|
|
||||||
* please see issue [#215](https://github.com/AngularClass/angular2-webpack-starter/issues/215) and [#214](https://github.com/AngularClass/angular2-webpack-starter/issues/214#event-511768416)
|
|
||||||
* I'm getting an error about not finding my module that I installed?
|
|
||||||
* please see [How to include or create custom type definitions](https://github.com/AngularClass/angular2-webpack-starter/wiki/How-to-include-or-create-custom-type-definitions) and [custom-typings.d.ts](https://github.com/AngularClass/angular2-webpack-starter/blob/master/src/custom-typings.d.ts)
|
|
||||||
* How do I async load a component?
|
|
||||||
* see wiki [How-do-I-async-load-a-component-with-AsyncRoute](https://github.com/AngularClass/angular2-webpack-starter/wiki/How-do-I-async-load-a-component-with-AsyncRoute)
|
|
||||||
* Error: Cannot find module 'tapable'
|
|
||||||
* Remove `node_modules/` and run `npm cache clean` then `npm install`
|
|
||||||
* What about Webpack 2?
|
|
||||||
* If you're looking for Webpack 2 version then see the [experimental version](https://github.com/gdi2290/angular2-webpack2-starter) that will be merged soon.
|
|
||||||
* How do I turn on Hot Module Replacement
|
|
||||||
* Run `npm run server:dev:hmr`
|
|
||||||
* `RangeError: Maximum call stack size exceeded`
|
|
||||||
* This is a problem with minifying Angular 2 and it's recent JIT templates. If you set `mangle` to `false` then you should be good.
|
|
||||||
* Why is the size of my app larger in development?
|
|
||||||
* We are using inline source-maps and hot module replacement which will increase the bundle size.
|
|
||||||
* If you're in China
|
|
||||||
* check out https://github.com/cnpm/cnpm
|
|
||||||
|
|
||||||
# Support, Questions, or Feedback
|
|
||||||
> Contact us anytime for anything about this repo or Angular 2
|
|
||||||
|
|
||||||
* [Chat: AngularClass.slack](http://angularclass.com/member-join/)
|
|
||||||
* [Twitter: @AngularClass](https://twitter.com/AngularClass)
|
|
||||||
* [Gitter: AngularClass/angular2-webpack-starter](https://gitter.im/angularclass/angular2-webpack-starter)
|
|
||||||
|
|
||||||
# Quick Start Guides
|
|
||||||
|
|
||||||
## Nitrous
|
|
||||||
|
|
||||||
You can quickly create a free development environment to get started using this
|
|
||||||
starter kit in the cloud on [Nitrous](https://www.nitrous.io/):
|
|
||||||
|
|
||||||
<a href="https://www.nitrous.io/quickstart?repo=https://github.com/nitrous-io/angular2-webpack-starter">
|
|
||||||
<img src="https://nitrous-image-icons.s3.amazonaws.com/quickstart.png" alt="Nitrous Quickstart" width=142 height=34>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
Simply run `HOST=0.0.0.0 npm start` from the terminal inside of
|
|
||||||
`~/code/angular2-webpack-starter` and access your site via the "Preview > 3000"
|
|
||||||
link in the IDE.
|
|
||||||
___
|
|
||||||
|
|
||||||
enjoy — **AngularClass**
|
|
||||||
|
|
||||||
<br><br>
|
|
||||||
|
|
||||||
[](https://angularclass.com)
|
|
||||||
##[AngularClass](https://angularclass.com)
|
|
||||||
> Learn AngularJS, Angular 2, and Modern Web Development from the best.
|
|
||||||
> Looking for corporate Angular training, want to host us, or Angular consulting? patrick@angularclass.com
|
|
||||||
|
|
||||||
# License
|
|
||||||
[MIT](/LICENSE)
|
|
||||||
|
|
|
||||||
|
|
@ -235,6 +235,7 @@ module.exports = {
|
||||||
chunksSortMode: helpers.packageSort(['polyfills', 'vendor', 'main'])
|
chunksSortMode: helpers.packageSort(['polyfills', 'vendor', 'main'])
|
||||||
}),
|
}),
|
||||||
|
|
||||||
|
// TODO: make sure this is a correct configuration
|
||||||
new webpack.ProvidePlugin({
|
new webpack.ProvidePlugin({
|
||||||
jQuery: 'jquery',
|
jQuery: 'jquery',
|
||||||
$: 'jquery',
|
$: 'jquery',
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue