web-dev-qa-db-fra.com

Javascript require () donnant ReferenceError: require n'est pas défini

En gros, j'utilise javascript pour extraire des données de Google Play Store en utilisant:

1 demande

2-Cheerios

3-QueryString

J'ai utilisé l'API Google Market de Github qui utilise require comme suit:

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

Mais je reçois ce qui suit

ReferenceError: require n'est pas défini ...

Donc, je n'ai pas besoin de javascript qui soit nouveau pour moi ou qui sort de l'ordinaire.

68
Hunain Usman

RequireJS est un chargeur de fichiers et de modules JavaScript. Il est optimisé pour une utilisation dans le navigateur, mais il peut être utilisé dans d'autres environnements JavaScript, tels que Rhino et Node. L'utilisation d'un chargeur de script modulaire tel que RequireJS améliorera la vitesse et la qualité de votre code.

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

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

Ajoutez ceci à votre projet: https://requirejs.org/docs/release/2.3.5/minified/require.js

et jetez un oeil à ceci http://requirejs.org/docs/api.html

64
Latheesan

Par défaut, require() n'est pas une fonction valide en javascript côté client. Je vous recommande de regarder require.js car cela étend le côté client pour vous fournir cette fonction.

24
neelsg

require fait partie de API de définition de module asynchrone (AMD) .

Une implémentation de navigateur peut être trouvée via require.js et le support natif peut être trouvé dans node.js .

La documentation de la bibliothèque que vous utilisez doit vous indiquer ce dont vous avez besoin. Je suppose qu’elle est destinée à être exécutée sous Node.js et non dans les navigateurs.

9
Quentin

Pour moi, le problème était que mon mode de génération Webpack n'était pas défini sur la production pour le paquet que je référenais. Il a été explicitement défini sur "build": "webpack --mode production" a corrigé le problème.

1
user1278577