Установите сторонний JS плагин в угловой 7 - PullRequest
0 голосов
/ 16 марта 2019

Я пытаюсь импортировать JS-плагин read-excel-file в angular 7 project. Я перепробовал все методы, указанные на веб-сайтах, но не смог.

Может кто-нибудь предложить лучший процесс.

declare var readXlsxFile: any;

In angular.json

        "scripts": [
          "node_modules/read-excel-file/commonjs/readXlsxFileBrowser.js"
        ]

OR

       "scripts": [
          "node_modules/read-excel-file/bundle/read-excel-file.min.js"
        ]

Но ничего не сработало. Я могу получить функцию readXlsxFile и ее выполнение, но внутри кода, вызывая другой модуль. Как загрузить эти зависимые модули?

Не могли бы вы также объяснить концепцию этой проблемы.

1 Ответ

1 голос
/ 16 марта 2019

При включении сторонних библиотек, есть две части ... код javascript, который вы хотите выполнить, и файлы определений, чтобы дать IDE все свои строгие качества.

Очевидно, что перваяприсутствовать, если приложение должно функционировать.Самый простой способ получить это - включить стороннюю библиотеку с тегом <script src="thirdLib.js"> на html-страницу, на которой размещено ваше приложение Angular 2.Это не даст вам определений, поэтому у вас не будет совершенства IDE, но приложение будет работать.(чтобы среда IDE не жаловалась на то, что она не знает о переменной 'thirdLib', добавьте declare var thirdLib:any в ваш файл ts. Поскольку он имеет тип any, среда IDE не будет предлагать завершение кода для ThirdLib, но это будеттакже не выбрасывайте ошибки IDE.)

Чтобы получить исполняемый код и определения, если библиотека была написана на Typescript, вы можете добавить ссылку на этот файл TS из своего кода с помощью import {thirdLib} from 'thirdLibfolder/thirdLib'.Файл ts библиотеки по своей природе имеет как исполняющий код, так и определения машинописного текста.

Если библиотека написана не в Typescript, но какая-то хорошая душа написала для нее файл определения ThirdLib.d.ts, вы можетессылка на файл d.ts с /// <reference path="thirdLibfolder/thirdLib.d.ts" /> в вашем файле TS.А затем по-прежнему включайте фактический исполняемый javascript со ссылкой на скрипт, как упомянуто выше.

Расположение этих файлов и то, включены ли в них расширения, зависят от настроек вашего проекта, а также от сборщика и инструмента сборки, который вы используете.Используем.Webpack будет искать в папке node_modules библиотеки, на которые есть ссылки в import {..., и будет принимать ссылку с расширением .ts и без него.Meteor выдаст ошибку, если вы добавите расширение .ts.

дополнительная ссылка.https://github.com/angular/angular-cli/wiki/3rd-party-libs

...