Как мне внедрить / интегрировать стороннюю библиотеку в Angular 6?

Некоторые библиотеки не поддерживаются Angular, например Clappr, HashWords и т. д. Я хочу использовать их в Angular, как если бы они были библиотекой Angular. Итак, как мы можем заставить Angular поддерживать внешние библиотеки / модули?

установите библиотеку, которую хотите использовать, а затем используйте ее, как описано в документации.

Exterminator 15.10.2018 12:47

Возможно, вы не настроите каждую библиотеку для работы с Angular. Вам просто нужно настроить его самостоятельно. Вы можете получить доступ к «узлу» в Angular, к которому вы можете подключить библиотеки, которым нужна DOM. Попробуйте это: blog.angularindepth.com/…

Faizuddin Mohammed 15.10.2018 13:02

@Exterminator, можете ли вы поделиться ссылкой на документацию на то же самое? Мне не удалось найти документацию, чтобы сделать Angular совместимым с внешними неподдерживаемыми библиотеками или модулями.

NEHA 15.10.2018 15:26

Так или иначе, нужно ли нам использовать собственный InjectionToken и использовать внедрение зависимостей для поддержки внешних библиотек и модулей. Я на правильном пути?

NEHA 15.10.2018 15:31

вам нужно погуглить их следующим образом: 'package_name in angular', тогда он дает вам ссылку на пакет, вы можете прочитать документацию оттуда, затем загрузить ее и использовать.

Exterminator 16.10.2018 06:52

Если в библиотеке нет модуля машинописного текста, выполните следующее: hackernoon.com/… Если в библиотеке НЕТ модуля TS, выполните следующее: alligator.io/angular/third-party-libraries-angular

Joaquin Brandan 26.10.2018 17:30
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
2
6
5 176
5

Ответы 5

Для Clappr- В Angular CLI запустите команду:

npm i clappr

https://www.npmjs.com/package/clappr

Затем следуйте приведенным ниже инструкциям.

Я пробовал это, но просто установил его, и написание фрагмента не помогло. Clappr несовместим с Angular.

NEHA 15.10.2018 15:16
  1. Установите пакет в свой проект: npm i clappr
  2. Объявление типа импорта в приложение Angular: app.component.ts

Добавьте файл библиотеки в index.html. Переменная, предоставляемая библиотекой, может использоваться в компоненте, объявив, как этот declare var Clappr: any;, вне класса компонента.

Если в библиотеке есть модуль ES6, вы можете просто импортировать его.

Если библиотека представляет собой просто файл JS, вы можете добавить файл, как если бы вы его импортируете, используя тег <script> в index.html, добавив путь к файлу js в массив скриптов в angular.json

Если типы доступны, вы можете добавить их в массив типов на typescript.json.

Вот руководство, как все это сделать.

https://nitayneeman.com/posts/how-to-add-third-party-library-in-angular-cli/

Если вам не нравится использование сторонних библиотек в качестве глобальных переменных, вы можете превратить их в inyectables. это более сложный процесс, но довольно изящный.

Вот руководство и для этого:

https://hackernoon.com/angular-providers-how-to-inject-3rd-party-library-af4a78722864

Вот как я установил в своем проекте Angular 9:

  1. npm install clappr
  2. Добавьте clappr в angular.json:
      "architect": {
        "build": {
          "builder": "@angular-devkit/build-angular:browser",
          "scripts": [
            "node_modules/clappr/dist/clappr.min.js"
          ],
          "styles": [
            "./src/styles.css"
          ]
        },
        "test": {
          "builder": "@angular-devkit/build-angular:karma",
          "scripts": [
            "node_modules/clappr/dist/clappr.min.js"
          ],
          "styles": [
            "./src/styles.css"
          ]
        }
      }

  1. Создайте файл index.d.ts и объявите clappr как:
declare module 'clappr';
  1. импортируйте его в файл component.ts:
import * as Clappr from 'clappr';

Другие вопросы по теме