Функция Javascript require () выдает ошибку ReferenceError: require не определен

94

В основном я использую javascript для очистки данных из магазина Google Play, используя:

1-запрос

2-Cheerios

3-QueryString

Я использовал API Google Market из Github, который требует следующего:

var request   = require('request');
var cheerio   = require('cheerio');
var qs      = require('querystring');

Но я получаю следующее

ReferenceError: требование не определено ...

Итак, мне не нужен javascript, который либо нов для меня, либо это что-то необычное.

Хунайн Усман
источник
15
Да, requireв браузерах не определено. Вы смешали учебные пособия по NodeJS с учебными пособиями для браузера.
elclanrs
1
Пожалуйста, дайте ссылку на библиотеку, которую вы используете.
Квентин

Ответы:

86

RequireJS - это загрузчик файлов и модулей JavaScript. Он оптимизирован для использования в браузере, но может использоваться в других средах JavaScript, таких как Rhino и Node. Использование модульного загрузчика скриптов, такого как RequireJS, повысит скорость и качество вашего кода.

IE 6+ .......... compatible ✔
Firefox 2+ ..... compatible ✔
Safari 3.2+ .... compatible ✔
Chrome 3+ ...... compatible ✔
Opera 10+ ...... compatible ✔

http://requirejs.org/docs/download.html

Добавьте это в свой проект: https://requirejs.org/docs/release/2.3.5/minified/require.js

и взгляните на этот http://requirejs.org/docs/api.html

Latheesan
источник
32

По умолчанию require()это недопустимая функция в javascript на стороне клиента. Я рекомендую вам изучить require.js, поскольку он расширяет клиентскую часть, чтобы предоставить вам эту функцию.

Neelsg
источник
12

requireявляется частью API определения асинхронного модуля (AMD) .

Реализация браузер может быть найден через require.js и нативная поддержка может быть найдена в node.js .

В документации к используемой вами библиотеке должно быть указано, что вам нужно для ее использования. Я подозреваю, что она предназначена для работы под Node.js, а не в браузерах.

Квентин
источник
@blogger - В вашем вопросе нет PHP, это весь JavaScript.
Квентин
ну, извините за это, опубликовал неправильный вопрос, удалил, что исходная ссылка: ссылка, и она основана на javascript, все еще не может решить проблему с помощью require.js
Hunain Usman
@blogger - этот модуль имеет все признаки того, что он разработан для работы с Node.JS. Скорее всего, это вообще не будет работать в браузере.
Квентин
после прочтения всех ответов на этот вопрос я теперь могу понять: p, спасибо за ваше сотрудничество и кодирование и начал исследование node.js прямо сейчас
Hunain Usman
require является частью Commonjs, а не AMD.
shin
4

Да, require является функцией Node.JS и не работает в сценариях на стороне клиента без определенных требований. Если вы получаете эту ошибку при написании кода electronicJS, попробуйте следующее:

В своем объявлении BrowserWindow добавьте следующее поле webPreferences: т.е. вместо простого mainWindow = new BrowserWindow()напишите

mainWindow = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true
        }
    });
Гаурав Джоши
источник
2

Для меня проблема заключалась в том, что у меня не был установлен режим сборки webpack для пакета, на который я ссылался. Явная установка для него «build»: «webpack --mode production» устранила проблему.

user1278577
источник