browserify: - Uncaught TypeError: fs.readFileSync не является функцией - PullRequest
0 голосов
/ 03 октября 2018

я пытаюсь использовать естественный .js в моем коде, чтобы использовать его на стороне клиента, я использовал browserify, но он выдает ошибку

Uncaught TypeError: fs.readFileSync is not a function
at loadDictionary (main.js:10999)
at Object.<anonymous> (main.js:10894)
at Object.69../base_stemmer_id (main.js:11175)
at o (main.js:1)
at main.js:1
at Object.44../analyzers/sentence_analyzer (main.js:6380)
at o (main.js:1)
at main.js:1
at Object.1.natural (main.js:23)
at o (main.js:1)

код пробуется

var natural =require("natural");
var tokenizer =new natural.WordTokenizer();
console.log(tokenizer.tokenize("my name is akash"));

любая помощь?

Ответы [ 3 ]

0 голосов
/ 03 октября 2018

Пытается получить доступ к библиотеке файловой системы fs, которая недоступна из браузера.К сожалению, Browserify конвертирует только импорт модулей в стиле node.js (например, require('package-name');) в форму, понятную браузеру.Он не заставляет все пакеты node.js работать в браузере.

С browserify.org

В браузерах нет метода requireопределяется, но Node.js делает.С Browserify вы можете писать код, который использует require так же, как вы используете его в Node.

0 голосов
/ 09 октября 2018

У меня возникла та же проблема при попытке просмотреть библиотеку для NLP на основе Natural.Наконец, мое решение состояло в том, чтобы не использовать Natural и перемещать стеммеры / токенизаторы.Прямо сейчас у меня есть пакет библиотеки NLP, работающий в браузере, вы можете найти его здесь: https://github.com/axa-group/nlp.js/tree/master/dist Чтобы использовать его, лучше прочитайте документы.

0 голосов
/ 03 октября 2018

Со страницы npm для natural.js :

"Natural" - это общее средство естественного языка для nodejs .

Поскольку он построен для Node.js, он, вероятно, использует специфичные для узла модули , такие как fs, что позволяет узлу получать доступ к файловой системе.Модуль fs не существует во внешнем интерфейсе.

Поэтому, когда natural.js пытается потребовать fs (я полагаю, с помощью Browserify), он не получает фактический модуль, который имеет Node,таким образом, он не может вызвать метод readFileSync.

...