This folder is where our end to end tests will live. This template doesn't include e2e tests, just the default configuration that is included in a new Angular project.
The npm packages installed in the project with the
npm install command.
The most important folder. Here we have all the files that make our Angular app and is the location where we will spend most of our time coding.
Specifies intentionally untracked files that Git should ignore.
Husky is a npm package that enable to run Git hooks easily. We specifically use it to lint our code (
ng lint) before commiting and ensure the commit message follows the Angular Commit Convention rules. This file defines the git hooks to run.
It provides workspace-wide and project-specific configuration defaults for build and development tools provided by the Angular CLI.
For details, see Angular Workspace Configuration.
Under the hood, the Angular CLI uses Autoprefixer to add vendor prefixes when parsing CSS rules. This way we ensure compatibility with different browser and browser versions. Internally, Autoprefixer relies on a library called Browserslist to figure out which browsers to support with prefixing. This file has the configuration for the supported browsers.
To ensure code quality, we follow and enforce the Angular Commit Message Guidelines. These guidelines define a Commit Message Format and certain rules that will help teams achieve consistency with version control and source code management practices.
ng test command builds the app in watch mode, and launches the Karma test runner.
Provides version information for all packages installed into
node_modules by the npm client.
As every modern web application, we need a package system and package manager to handle all the third-party libraries and modules used by our app.
Inside this file you will find all the dependencies and some other handy stuff like the npm scripts that will help us a lot to orchestrate the development (bundling/compiling) workflow.
You may notice there are a few
tsconfig.*.json files in any standard Angular project. They follow the same base + customization pattern.
tsconfig.json provides the base options that different config files derive from, and each specific tsconfig file provides specific options. This allows you to further customize the options from
In particular, this config file provides the options used when working with code in the
app folder. This configuration file is referenced in the
tsc compiler, which requires some configuration.
Keep in mind that this file needs to be in the root path as it’s where the TypeScript compiler will look for it.
Specific tsconfig options used when compiling the app for Server Side Rendering. This configuration file is referenced in the
Specific tsconfig options used when compiling the tests for your app. This configuration file is referenced in the
tslint is a package that parses your Typescript code looking for points that don't follow best practice rules.
This configuration file defines the set of rules for best practices in Typescript in general. In particular, all standard Angular projects created with the Angular CLI extend tslint rules from the
codelyzer npm package.
Every time you run
ng lint these rules are enforced.
Default webpack config used by the Angular CLI build/bundling workflow.