If you want to create a new Coveo Headless-powered search page with the Angular web framework from scratch, it is simpler to use the
coveo ui:create:angular command in the Coveo CLI. The Coveo CLI will handle a lot of complexity for you. Calling the
@coveo/angular package directly from the Angular CLI should rather be done to help you integrate a search page to an already existing Angular project.
To add a Coveo Headless-powered search page using Material Angular to an existing Angular project, execute the following steps:
ng add @coveo/angular --org-id=<org-id> --api-key=<api-key>, where you replace
<org-id>by the unique identifier of your Coveo organization, and
<api-key>by an API key granting the impersonate privilege in the target organization.
- Answer the questions prompted in your terminal to configure your interface styling.
- In your project, navigate to the new
serverfolder. This is an Express server which generates Coveo search tokens.
- The folder should contain a
.env.examplefile. Create a copy of that file and rename it
- In that new
.envfile, replace all placeholder variables (
<...>) by the proper information for your organization. For more involved configurations, you can modify the request parameters used in the
- You can now go back to the root directory of your project and serve it by running
To test the schematic locally, install
@angular-devkit/schematics-cli globally and use the
schematics command-line tool. That tool mimics
add commands of the Angular CLI.
Check the documentation with
First of all, create a new project:
ng new my-test-app --routing --style css
Make sure to link your local schematic to the project you want to use it in.
cd my-test-app npm link /path/to/coveo-cli/packages/angular
You can also use
npm packin your schematics project, then
npm install /path/to/artifact.tar.gzin your Angular project. This mimics
npm installmore than npm link.
Run your schematic
schematics @coveo/angular:headless-engine --org-id<org-id> --api-key=<api-key> --dry-run
npm run test will run the unit tests, using Jasmine as a runner and test framework.
To publish, simply do:
npm run build npm publish