Невозможно импортировать js-поиск в компоненте vue js - PullRequest
0 голосов
/ 27 апреля 2019

Я пытаюсь импортировать модуль js-search npm в компонент vue. Но всякий раз, когда я делаю это:

import JsSearch from 'js-search'

Выше при регистрации console.log(JsSearch) дают неопределенное значение.

Я также исследовал, что модуль npm

Его package.json показывает "main": "dist/commonjs/index.js" Файл выглядит так:

'use strict';

Object.defineProperty(exports, "__esModule", {
  value: true
});

var _index = require('./IndexStrategy/index');

Object.defineProperty(exports, 'AllSubstringsIndexStrategy', {
  enumerable: true,
  get: function get() {
    return _index.AllSubstringsIndexStrategy;
  }
});
Object.defineProperty(exports, 'ExactWordIndexStrategy', {
  enumerable: true,
  get: function get() {
    return _index.ExactWordIndexStrategy;
  }
});
Object.defineProperty(exports, 'PrefixIndexStrategy', {
  enumerable: true,
  get: function get() {
    return _index.PrefixIndexStrategy;
  }
});

var _index2 = require('./Sanitizer/index');

Object.defineProperty(exports, 'CaseSensitiveSanitizer', {
  enumerable: true,
  get: function get() {
    return _index2.CaseSensitiveSanitizer;
  }
});
Object.defineProperty(exports, 'LowerCaseSanitizer', {
  enumerable: true,
  get: function get() {
    return _index2.LowerCaseSanitizer;
  }
});

var _index3 = require('./SearchIndex/index');

Object.defineProperty(exports, 'TfIdfSearchIndex', {
  enumerable: true,
  get: function get() {
    return _index3.TfIdfSearchIndex;
  }
});
Object.defineProperty(exports, 'UnorderedSearchIndex', {
  enumerable: true,
  get: function get() {
    return _index3.UnorderedSearchIndex;
  }
});

var _index4 = require('./Tokenizer/index');

Object.defineProperty(exports, 'SimpleTokenizer', {
  enumerable: true,
  get: function get() {
    return _index4.SimpleTokenizer;
  }
});
Object.defineProperty(exports, 'StemmingTokenizer', {
  enumerable: true,
  get: function get() {
    return _index4.StemmingTokenizer;
  }
});
Object.defineProperty(exports, 'StopWordsTokenizer', {
  enumerable: true,
  get: function get() {
    return _index4.StopWordsTokenizer;
  }
});

var _Search = require('./Search');

Object.defineProperty(exports, 'Search', {
  enumerable: true,
  get: function get() {
    return _Search.Search;
  }
});

var _StopWordsMap = require('./StopWordsMap');

Object.defineProperty(exports, 'StopWordsMap', {
  enumerable: true,
  get: function get() {
    return _StopWordsMap.StopWordsMap;
  }
});

var _TokenHighlighter = require('./TokenHighlighter');

Object.defineProperty(exports, 'TokenHighlighter', {
  enumerable: true,
  get: function get() {
    return _TokenHighlighter.TokenHighlighter;
  }
});
//# sourceMappingURL=index.js.map

В этом файле я вижу, что нет module.exports, но есть различные Object.defineProperty и несколько переменных, начинающихся с _

AFAIK, подчеркивания в javascript - это просто условные обозначения. Поэтому я предполагаю, что переменные подчеркивания должны быть как минимум доступны в переменной JsSearch, если я импортирую их, и, следовательно, они не должны быть неопределенными (не так ли?)

Так в принципе, как этот модуль npm работает даже с require и что я должен сделать, чтобы он работал с import?

(я обнаружил эту проблему в репозитории github: https://github.com/bvaughn/js-search/issues/33 возможно, это поможет)

1 Ответ

1 голос
/ 29 апреля 2019

Здесь https://github.com/bvaughn/js-search вы можете найти пример использования этого пакета

Вам нужно импортировать его таким образом

import * as JsSearch from 'js-search';

Потому что в исходном коде в index.js вы можете видеть, что нет экспорта с именем JsSearch. Таким образом, вы не можете импортировать его таким образом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...