Правильный способ импортировать библиотеку диаграмм SpreadJS в приложение Angular

#angular #spreadjs

#angular #spreadjs

Вопрос:

Я пытаюсь импортировать библиотеку построения графиков SpreadJS в свое приложение angular, но независимо от того, какие варианты я пробую, я никогда не получаю результатов. Однако коллега, использующий тот же код и настройки, может правильно использовать диаграммы.

Мы используем следующие версии:

     "@grapecity/spread-excelio": "^12.0.9",
    "@grapecity/spread-sheets": "^12.0.9",
    "@grapecity/spread-sheets-angular": "^12.0.9",
    "@grapecity/spread-sheets-charts": "^12.0.9",
  

устанавливается через модули NPM.

Мы также пытаемся использовать следующее руководство, но оно кажется устаревшим и у нас не работает:https://www.grapecity.com/en/blogs/create-angular-spreadsheets-with-angular-cli

Мы используем их в компонентах, импортируя их следующим образом:

 import * as GC from '@grapecity/spread-sheets';
import '@grapecity/spread-sheets-charts';
  

При вызове sheet.charts.clear(); я получаю следующее сообщение об ошибке:
Cannot read property 'clear' of undefined (предположим, что sheet — это переменная, содержащая ссылку на лист spreadjs).
У моего коллеги нет проблем с тем же кодом, и диаграммы отлично загружаются для него.

Есть предложения, что еще мы должны попробовать?

Комментарии:

1. Первый. Если вы используете angular.json для импорта сценариев index.html , вам не нужно импортировать свою библиотеку в компонентах (этот подход обычно используется, когда используются старые библиотеки, которые не разделены на модули). Также было бы здорово, если бы вы предоставили нам небольшой рабочий пример в StackBlitz

2. Я, наконец, понял, что эта проблема была вызвана package-lock.json. Я удалил этот файл и node_modules, и он начал работать «волшебным образом»

3. @Narshe напишите это как ответ, и я поддержу его. В настоящее время я внимательно изучаю SpreadJS.

4. @SQLGeorge готово

Ответ №1:

Причина, по которой это происходило с нами, заключается в том, что у нас были разные версии для каждого модуля в нашем package-lock.json .

Чтобы исправить это, мы просто удалили папку package-lock.json и node-modules. После повторного запуска npm install все начало работать нормально. Просто убедитесь, что package.json также содержит одну и ту же версию для каждого из модулей.