Moving from Trial to Licensed Ignite UI NPM Packages

Jason Beres [Infragistics] / Thursday, May 28, 2020

This post highlights the changes starting with NPM packages deployed from our 20.1 release (9.1 Angular) from June 2nd and forward.  Any NPM packages prior to this release are unaffected.

It is important to know all the legal terms and conditions regarding the products that you purchase and use. 

If you are building a commercial product or your license has expired, you will need to acquire a commercial license. This will enable you to use our private npm feed hosted on https://packages.infragistics.com/npm/js-licensed/ for development. There you will find the latest versions of the Ignite UI for Angular packages. If you have a valid commercial license, you can use this private feed and you will have access to the full version of Ignite UI for Angular.

If you are building a non-commercial product contact us and we will provide you with the appropriate license.

Ignite UI for Angular npm packages - Using the Private npm feed

Npm is the most popular package manager and is also the default one for the runtime environment Node.js. It is highly adopted and is one of the fastest and easiest way to manage the packages that you depend on in your project. For more information on how npm works, read the official npm documentation.

Infragistics Ignite UI for Angular is available as a npm package and you can add it as a dependency to your project in a few easy steps.  Choosing this approach will not require configuring npm. By installing Ignite UI for Angular via npmjs.com package you will be using the Ignite UI for Angular Trial version of the product.

Infragistics Ignite UI Dock Manager Web Component is available as a separate npm package and by installing it you will start using the Ignite UI Dock Manager Web Component Trial version of the product.

More information on how to start using the Ignite UI for Angular npm package can be found in this topic and more information on Ignite UI Dock Manager Web Component can be found here.

Upgrading packages using our Angular Schematics or Ignite UI CLI

If Ignite UI for Angular has been added to the project using ng add or the project has been created through our schematics collection or Ignite UI CLI, you can use our upgrade-packages to automatically upgrade your app to using our licensed packages.

Note

As the process changes packages, we recommend that you update your project first before switching to avoid picking up a higher version of Ignite UI Angular and missing on potential update migrations. Follow our Update Guide.

Run the following schematic in your project:

ng g @igniteui/angular-schematics:upgrade-packages

or if using igniteui-cli:

ig upgrade-packages

The schematic or command will take care of switching the package dependencies of the project and update source references. You'll be asked to login to our npm registry if not already setup.

How to setup your environment to use the private npm feed

First you need to setup the private registry and to associate this registry with the Infragistics scope.

This will allow you to seamlessly use a mix of packages from the public npm registry and the Infragistics private registry. You will be asked to provide the username and the password that you use for logging into your Infragistics account. You should also provide the email that is registered to your Infragistics profile.

Note

npm is disallowing the use of the "@" symbol inside your username as it is considered as being "not safe for the net". Because your username is actually the email that you use for your Infragistics account it always contains the symbol "@". That's why you must escape this limitation by replacing the "@" symbol with "!!" (two exclamation marks). For example, if your username is "username@example.com" when asked about your username you should provide the following input: "username!!example.com".

Now, to log in to our private feed using npm, run the adduser command and specify a user account and password:

npm adduser --registry=https://packages.infragistics.com/npm/js-licensed/ --scope=@infragistics --always-auth

After this is done, you will be logged in and you will be able to install the latest versions of the Ignite UI packages into your project:

npm uninstall igniteui-angular
npm install @infragistics/igniteui-angular

npm uninstall igniteui-dockmanager
npm install @infragistics/igniteui-dockmanager

Have in mind that we have set the Ignite UI for Angular package to be scoped, meaning that no changing the registries is needed if you want to install packages from our private feed and from npmjs.org simultaneously.

Some additional changes might have to be made in your project source

If you are upgrading from trial to licensed package and you are not using the automated CLI migrations:

  • Add a paths mapping in the project tsconfig.json.
{
  ...
  "compilerOptions": {
    "baseUrl": "./",
    "outDir": "./dist/out-tsc",
    ...
    "paths": {
      "igniteui-angular": ["./node_modules/@infragistics/igniteui-angular"],
      "igniteui-dockmanager": ["./node_modules/@infragistics/igniteui-dockmanager"],
      "igniteui-dockmanager/*": ["./node_modules/@infragistics/igniteui-dockmanager/*"],
    }
    ...
}

  • Add a stylePreprocessorOptions mapping to your project angular.json
{
  "projects": {
    ..
    "prefix": "app",
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "options": {
            ...
            "aot": true,
            "stylePreprocessorOptions": {
                "includePaths": [
                    "node_modules/@infragistics"
                ]
            }
            ...
},

  • remove the ~ sign from your project sass imports for igniteui-angular/lib source:
@import "~igniteui-angular/lib/core/styles/themes/index";

// Should be changed to

@import "igniteui-angular/lib/core/styles/themes/index";

So, if you've already adopted npm and you have an Ignite UI for Angular license, don't hesitate setting up the Infragistics private feed and boost your productivity, using the full potential of Ignite UI for Angular.

Access Tokens

You can use tokens as an alternate way to authorize in your command-line utility, and access Infragistics products (packages). Your generated tokens will remain active as long as your subscription is current.  You can access your token via your Customer Portal at https://account.infragistics.com/access-tokens.

When you log in, you'll be able to generate tokens via this screen:

Note: Please keep your access tokens a secret, like a password. New tokens will be displayed until the page is refreshed, after that tokens will be obfuscated.

Wrap Up

This change should be straightforward for you.  If you have any issues, please contact me at jasonb@infragistics.com, check the Forums or contact Support directly. 

Thanks

Jason