Funkcja require () JavaScript podająca błąd ReferenceError: require nie jest zdefiniowana

101

Zasadniczo używam javascript do pobierania danych ze sklepu Google Play za pomocą:

1-żądanie

2-Cheerios

3-QueryString

Użyłem Google Market API z Github, który używa następujących wymagań:

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

Ale otrzymuję następujące informacje

ReferenceError: require is not specified ...

Więc nie mam wymagania w javascript, który jest dla mnie nowy lub jest czymś niezwykłym.

Hunain Usman
źródło
15
Tak, requirenie jest zdefiniowane w przeglądarkach. Samouczki NodeJS zostały połączone z samouczkami przeglądarki.
elclanrs
1
Podaj link do biblioteki, z której korzystasz.
Quentin

Odpowiedzi:

91

RequireJS to plik JavaScript i moduł ładujący. Jest zoptymalizowany do użytku w przeglądarce, ale może być używany w innych środowiskach JavaScript, takich jak Rhino i Node. Korzystanie z modułowego modułu ładującego skrypt, takiego jak RequireJS, poprawi szybkość i jakość kodu.

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

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

Dodaj to do swojego projektu: https://requirejs.org/docs/release/2.3.5/minified/require.js

i spójrz na ten http://requirejs.org/docs/api.html

Tokarski
źródło
34

Domyślnie require()nie jest prawidłową funkcją w javascript po stronie klienta. Polecam zajrzeć do require.js, ponieważ rozszerza to stronę klienta, aby zapewnić Ci tę funkcję.

neelsg
źródło
12

requirejest częścią interfejsu API Asynchronous Module Definition (AMD) .

Implementacja przeglądarki można znaleźć poprzez require.js i natywne wsparcie można znaleźć w node.js .

Dokumentacja biblioteki, z której korzystasz, powinna powiedzieć ci, czego potrzebujesz, aby z niej skorzystać, podejrzewam, że jest przeznaczona do uruchamiania pod Node.js, a nie w przeglądarkach.

Quentin
źródło
@blogger - Twoje pytanie nie zawiera PHP, to cały JavaScript.
Quentin
przepraszam za to, zamieściłem pod złym pytaniem, usunąłem, że link do źródła to: link i jest oparty na javascript, nadal nie jest w stanie rozwiązać problemu za pomocą require.js
Hunain Usman
@blogger - ten moduł ma wszystkie cechy charakterystyczne dla tego, że został zaprojektowany do działania z Node.JS. Prawdopodobnie w ogóle nie będzie działać w przeglądarce.
Quentin
po przeczytaniu wszystkich odpowiedzi od tego pytania mogę zrozumieć teraz: P Dzięki za współpracę i kodowania i rozpoczął badania nad node.js teraz
Hunain Usman
require jest częścią Commonjs, a nie AMD.
shin
5

Tak, require to funkcja Node.JS i nie działa w skryptach po stronie klienta bez określonych wymagań. Jeśli otrzymujesz ten błąd podczas pisania kodu electronJS, wypróbuj następujące rozwiązania:

W deklaracji BrowserWindow dodaj następujące pole webPreferences: tj. Zamiast zwykłego mainWindow = new BrowserWindow()zapisu

mainWindow = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true
        }
    });
Gaurav Joshi
źródło
2

U mnie problem polegał na tym, że nie ustawiłem trybu kompilacji pakietu webpack na produkcyjny dla pakietu, do którego się odwoływałem. Jawne ustawienie go na „build”: „webpack --mode production” rozwiązało problem.

user1278577
źródło