9.0.0 • Published 4 years ago

@linnenschmidt/build-ng-packagr v9.0.0

Weekly downloads
923
License
MIT
Repository
github
Last release
4 years ago

Angular Build Architect for ng-packagr with asset handling

The default Angular build architect @angular-devkit/build-ng-packagr for ng-packagr doesn't copy assets of libraries. Most library projects have assets which was mentioned here /angular/angular-cli/issues/11071.

This Angular Build Architect solves the known issue of @angular-devkit/build-ng-packagr even if you only copy assets.

How to install

Install @linnenschmidt/build-ng-packagr into your angular project.

npm install @linnenschmidt/build-ng-packagr --save-dev

or

yarn add @linnenschmidt/build-ng-packagr --dev

How to use

  1. Replace the build architect of your libraries by @linnenschmidt/build-ng-packagr:build.
    "architect": {
     "build": {
       "builder": "@linnenschmidt/build-ng-packagr:build",
  2. Add your assets glob rules to the options section like as you normally do for apps
    "options": {
     "project": "projects/lib/ng-package.json",
     "tsConfig": "projects/lib/tsconfig.lib.json",
     "assets": [
       "src/assets",
       {
         "glob": "**/*.css",
         "input": "src/some-assets",
         "output": "assets/some-assets"
       }
     ]
    }

A final angular.json file could look like the following example:

{
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "version": 1,
  "projects": {
    "lib": {
      "root": "projects/lib",
      "projectType": "library",
      "architect": {
        "build": {
          "builder": "@linnenschmidt/build-ng-packagr:build",
          "options": {
            "project": "projects/lib/ng-package.json",
            "tsConfig": "projects/lib/tsconfig.lib.json",
            "assets": [
              "src/assets",
              {
                "glob": "**/*.css",
                "input": "src/some-assets",
                "output": "assets/some-assets"
              }
            ]
          }
        },
        "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "options": {
            "main": "projects/lib/src/test.ts",
            "tsConfig": "projects/lib/tsconfig.spec.json",
            "karmaConfig": "projects/lib/karma.conf.js"
          }
        },
        "lint": {
          "builder": "@angular-devkit/build-angular:tslint",
          "options": {
            "tsConfig": [
              "projects/lib/tsconfig.lib.json",
              "projects/lib/tsconfig.spec.json"
            ],
            "exclude": ["**/node_modules/**"]
          }
        }
      }
    }
  }
}

CLI commands for development

Test package

yarn test

Build package

yarn build

Two of the known issues