fuse.js как зависимость в приложении aurelia

Я безуспешно пытался добавить fuse.js как зависимость от моего приложения на основе aurelia.

Приложение было инициализировано с au инструмент, и использует TypeScript в качестве основного языка.

В aurelia_project/aurelia.json Я попытался добавить зависимость в следующих форматах, в build.bundles[vendor-bundle].dependencies:

"fuse.js"

{
  "name": "fuse.js",
  "path": "../node_modules/fuse.js/dist/fuse"
}

{
  "name": "fuse.js",
  "path": "../node_modules/fuse.js/dist/",
  "main": "fuse"
}

Ни один не дал мне библиотеку, доступную во время выполнения (всегда undefined когда импортируется import * as Fuse from 'fuse.js'; и два первых дали мне ошибки при сборке.

Как я могу добавить fuse.js как зависимость от приложения aurelia?

2 ответа

Я использую fuse.js в своем приложении как конвертер значений, моя структура - webpack и dotnet core,

  1. npm установить fuse.js --save
  2. добавить fuse.js в мою часть поставщика файла webpack.config.vendor
  3. npm install @types/fuse
  4. Я создал конвертер значений, например:

    import { FuseOptions } from 'fuse.js';
    import * as Fuse from 'fuse.js';
    
    export class FuseValueConverter {
    
    toView(value: Array<any>, options: FuseOptions, criteria: string) {
       console.log(value);
    
       if (!options || !criteria)
           return value || [];
    
       const fuse = new Fuse(value, options);
    
       return fuse.search(criteria);
       }
    }
    

а затем я применил это в моих моделях представлений, как и любой другой преобразователь значений в Аурелии

Не правда ли, что aurelia не использует расширение (.js в вашем случае) при импорте? Ваш файл JSON также неправильно отформатирован.

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