Я пытаюсь использовать PhotoSwipe в проекте Aurelia, но не могу найти способ заставить его работать.Как импортировать и использовать PhotoSwipe с Aurelia/Typcript?
В моем aurelio.json под пучками, у меня есть:
{
"name": "photoswipe",
"path": "../node_modules/photoswipe/dist/",
"main": "photoswipe.min",
"resources": [
"photoswipe-ui-default.min.js",
"photoswipe.css",
"default-skin/default-skin.css"
]
}
в моем package.json, у меня есть:
"@types/photoswipe": "^4.0.27",
"photoswipe": "^4.1.1"
в моем модуле .ts, у меня есть
import PhotoSwipe from 'photoswipe';
Код, который я использую для открытия галереи (только что скопирован из getting started doc)
imageClicked() {
var pswpElement = document.querySelectorAll('.pswp')[0];
// build items array
var items = [
{
src: 'https://placekitten.com/600/400',
w: 600,
h: 400
},
{
src: 'https://placekitten.com/1200/900',
w: 1200,
h: 900
}
];
// define options (if needed)
var options = {
// optionName: 'option value'
// for example:
index: 0 // start at first slide
};
// Initializes and opens PhotoSwipe
var gallery = new PhotoSwipe<PhotoSwipeUI_Default.Options>(pswpElement as HTMLElement, PhotoSwipeUI_Default, items, options);
gallery.init();
}
Проект Аурелия строит нормально, но во время выполнения я получаю эту ошибку:
Uncaught ReferenceError: PhotoSwipeUI_Default is not defined
Я пытался добавить экспорт в aurelia.json пачке
"exports": [ "PhotoSwipe", "PhotoSwipeUI_Default" ]
Это ничего не меняет.
Я попробовал различные операторы импорта:
import PhotoSwipeUI_Default from 'photoswipe'; // Now PhotoSwipeUI_Default is of type PhotoSwipe
import PhotoSwipeUI_Default from 'photoswipe/dist/photoswipe-ui-default' // Module not found compile error
import PhotoSwipeUI_Default from 'npm:[email protected]/dist/photoswipe-ui-default.min.js'; // Cannot find module
Я в темноте, и мой метод проб и ошибок разрешающего это происходит не где.
Что мне не хватает?
Благодарим вас за ответ, а также за предотвращение моей предстоящей проблемы с файлами css. Я изменил aurelia.json и мой импорт в соответствии с вашим ответом, но я продолжаю получать: «ошибка TS2307: не удается найти модуль« photoswipe/photoswipe-ui-default ».» – mark
Когда я вернусь домой, я попробую его в TypeScript. Однако я работал в ESNext. –
Я действительно сталкиваюсь с проблемой Rock/Hard, поскольку я пытаюсь решить проблему. Тем не менее, я не получаю ошибку. Я получаю сообщение «Ошибка: src \ app.ts (36,19): ошибка TS2351: Невозможно использовать« новый »с выражением, чей тип не имеет вызова или построения подписи». Я могу избавиться от этой ошибки, выполнив 'import * в качестве PhotoSwipe из" photoswipe ";', но этот код не работает во время выполнения. Лучше всего поставить еще один вопрос по этой проблеме, поскольку на данный момент это не вопрос Aurelia, это проблема с TypeScript. –