There are two main components to a CEF implementation: The CEF core
library and the individual client site implementation. They both use a
very similar development environment. This guide will explain the setup
for a client site implementation and then call-out exceptions for core
library development.
CEF is an Angular2 application. To build and manage the application,
Angular-Cli is used, which uses Webpack for assembly. Like most
front-end tools, they are all based on the NodeJs platform. To get
started, you only need a basic understanding of Angular-Cli and NPM
(Node Package Manager). As you get deeper into development, familiarity
with Webpack will be useful.
The CEF front-end is OS and editor agnostic, but it is suggested that a
full IDE (or text editor with a lot of plugins?) be used. An IDE can
better track dependency path changes, provide intellisense, and lint in
real-time, which will make development much faster and easier.
Install Node using the installer from the site. Prefer the Current
version since development tools often use the latest features. Be sure
that the option to add Node to your $PATH is checked. Node comes with
NPM.
Use npm -g angular-cli to install Angular-Cli. It will pull its
dependencies as well, most notably Webpack.
If you are working on a client site implementation and want/need CEF
template override capability you will need to customize the build of
Angular-Cli. First, follow the instructions for hacking the tool from
the Github
site.
There is a git patch file in <b>/src/angular-cli-patch</b>. Apply it
with the git apply command.
After the files are patched, npm build it. Don't forget that you will
need to npm link angular-cli inside any new site you set up for
development.
Augury is a Chrome extension that aids in
visualizing and debugging Angular 2 applications in the web browser.
Some of these steps are only necessary when the project is initially set
up since the changes will be maintained in source control.
npm install, then npm link angular-cli.npm start to start the local development server. It will