Как правильно использовать сторонние библиотеки javascript в Angular 6+

Я хотел бы использовать некоторые сторонние библиотеки в моем проекте Angular, но начиная с версии 6 Angular я получаю справочную ошибку: global not defined. Я установил библиотеку и добавил библиотеку @types. К сожалению, я еще не заставил его работать.

Есть ли кто-нибудь, кто может мне объяснить, как использовать сторонние библиотеки в angular 6 и выше? Я не хочу возвращаться к Angular 5 только для библиотеки javascript.

какую стороннюю библиотеку вы используете?

Rahul Dudharejiya 19.10.2018 14:47
Поведение ключевого слова "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) для оценки ваших знаний,...
1
1
1 065
2

Ответы 2

добавьте это в свой index.html

<script>
  if (global === undefined) {
    var global = window;
  }
</script>

от: https://github.com/aws-amplify/amplify-js/issues/678

Спасибо за ответ! Я видел, как это решение появлялось в различных потоках, но добавление этого скрипта вызывает TypeError: superCtor is undefined. Еще пробовал добавить (окно как любое) .global = window; в polyfill.ts, но также вызывает TypeError.

Steve Ray 19.10.2018 16:11

Это прискорбно. Вы уже нашли решение? Я планирую перенести проект с Angular 4 на 6 и, зная, что могут возникнуть проблемы (особенно связанные с сторонними библиотеками), я не решаюсь это сделать

Outman 21.10.2018 21:07

Есть несколько способов его использования, в зависимости от того, что именно вам нужно.

Вообще говоря, для этой устаревшей нетипизированной библиотеки js вы всегда можете использовать что-то вроде следующего:

import * as jquery from 'jquery'

Для библиотек, которым требуется глобальный доступ, вам может потребоваться настроить файл angular.json и добавить ссылку на поле scripts:

"scripts": [
    "node_modules/zoomooz/jquery.zoomooz.min.js"
],

Для некоторой сложной библиотеки с операторами экспорта по умолчанию вам может даже потребоваться:

import LIBRARYNAME from 'library-name' (без скоб)

Так что это действительно зависит от того, что вам нужно.

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