Задать вопрос

Как подключить библиотеку?

Подключаю скрипт в html файл:
<script src="script.js"></script>

Подключаю библиотеку в js файле:
const fetch = require('node-fetch');

Ошибка в браузере:
Uncaught ReferenceError: require is not defined

В интернете нашла подобную проблему: Browser: Uncaught ReferenceError: require is not d... - это бы помогло, если бы не получилось подключить скрипт, но он отрабатывает.
Как подключить библиотеку?
  • Вопрос задан
  • 598 просмотров
Подписаться 1 Простой 5 комментариев
Решения вопроса 1
VoidVolker
@VoidVolker Куратор тега JavaScript
Dark side eye. А у нас печеньки! А у вас?
А вы вообще хотя бы описание видели этой библиотеки, не? Ну может хотя бы название видели, не? Оно вас не смутило? Да и в описании ведь всё ясно написано:

A light-weight module that brings Fetch API to Node.js.

https://www.npmjs.com/package/node-fetch#installation
Попробуйте следовать официальной инструкции и запускать код в контексте ноды, а не браузера.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
@artem-dainov
Php, java, js. Boot spring, jquery, git
Простите. require - это из мира node.js
Ответ написан
@ImagineTables
Во-первых, большинство библиотек идёт в нескольких вариантах. Один для Node.js (сервера БЕЗ браузера), с require, второй — ESM (JS-модули), который совместим с браузером. И ещё иногда как классическая библиотека, бо эти уроды из W3C модули для файлов запретили (облака ведь так не продашь).

Короче говоря (это универсальный совет), в следующий раз открываете страницу библиотеки на npmjs.com (она находится Гуглом по запросу "require(ИМЯ_БИБЛИОТЕКИ)". Затем переходите по ссылке из правой колонки на Гитхаб. Там внимательно читаете readme, и ищете ссылку на CDN и фразу про import blah from 'blah-blah';. Вот так и подключаете.

Во-вторых. Я что-то не понимаю. В описании указано:

Motivation
Instead of implementing XMLHttpRequest in Node.js to run browser-specific Fetch polyfill, why not go from native http to fetch API directly? Hence, node-fetch, minimal code for a window.fetch compatible API on Node.js runtime.


По-моему, тут написано, что библиотека эмулирует родной браузерный window.fetch для сервера под нодой. Если это так, то и вызывайте родной браузерный, а не эмуляцию, которая в браузере не нужна. Или я что-то неправильно понимаю?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы