Не удается заставить работать пакет npm libphonenumber, fs.readFileSync не является ошибкой функции

Я пытаюсь использовать библиотеку googlei18n libphonenumber для проверки номера телефона. Я использую пакет npm через npm i libphonenumber, но когда я делаю это:

var libphonenumber = require('libphonenumber')

Я получаю сообщение об ошибке Uncaught TypeError: fs.readFileSync is not a function

Даже если я добавлю browserify-fs в качестве dep и потребую его перед libphonenumber, я все равно получаю сообщение об ошибке. Я гуглил и не могу понять, что эта ошибка вообще означает, за исключением того, что это какая-то функция каталога. Разве libphonenumber не должен быть скриптом, а не файловой директорией?

Любая помощь будет принята с благодарностью!


person j_d    schedule 07.03.2016    source источник


Ответы (1)


Установленный вами модуль явно является портом кода Google для узла, а не для браузера. Если вы хотите использовать его в браузере, не устанавливайте его из npm, а загружайте прямо из репозитория Google. Если вы хотите использовать его с браузером, взгляните на browserify-shim, который позволяет вам связывать библиотеки которые не используют модули CommonJS.

См. также https://github.com/mattbornski/libphonenumber/issues/17.

person Prinzhorn    schedule 07.03.2016
comment
вы хоть представляете, как это работает в webpack? У меня похожая проблема с fs. Проверьте это здесь stackoverflow .com/questions/37608118/ - person Muhaimin; 04.06.2016