Função JavaScript require () que fornece ReferenceError: require não está definida

101

Basicamente, estou usando javascript para extrair dados da Google Play Store usando:

1-Pedido

2-Cheerios

3-QueryString

Eu usei a API do Google Market do Github que usa os requisitos a seguir:

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

Mas estou conseguindo o seguinte

ReferenceError: o requerimento não está definido ...

Então, eu não preciso em javascript, o que é novo para mim ou isso é algo fora do comum.

Hunain Usman
fonte
15
Sim, requirenão está definido em navegadores. Você misturou tutoriais do NodeJS com tutoriais do navegador.
elclanrs
1
Forneça um link para a biblioteca que você está usando.
Quentin de

Respostas:

91

RequireJS é um carregador de módulo e arquivo JavaScript. Ele é otimizado para uso no navegador, mas pode ser usado em outros ambientes JavaScript, como Rhino e Node. Usar um carregador de script modular como RequireJS melhorará a velocidade e a qualidade do seu código.

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

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

Adicione ao seu projeto: https://requirejs.org/docs/release/2.3.5/minified/require.js

e dê uma olhada neste http://requirejs.org/docs/api.html

Latheesan
fonte
34

Por padrão, require()não é uma função válida no javascript do lado do cliente. Eu recomendo que você olhe para require.js, pois isso estende o lado do cliente para fornecer essa função.

Neelsg
fonte
12

requirefaz parte da API Asynchronous Module Definition (AMD) .

A implementação do navegador podem ser encontrados através require.js e suporte nativo pode ser encontrado em node.js .

A documentação da biblioteca que você está usando deve dizer o que você precisa para usá-la, eu suspeito que ela se destina a ser executada em Node.js e não em navegadores.

Quentin
fonte
@blogger - Não há PHP na sua pergunta, é tudo JavaScript.
Quentin de
desculpe por isso, postou a pergunta errada, excluí que o link da fonte é: link e é baseado em javascript, ainda não foi possível resolver o problema usando require.js
Hunain Usman
@blogger - Esse módulo tem todas as características de ter sido projetado para funcionar com o Node.JS. Provavelmente não funcionará em um navegador.
Quentin
depois de ler todas as respostas a esta pergunta eu posso entender agora: obrigado por sua cooperação e codificação e comecei a pesquisar em node.js agora
Hunain Usman
require faz parte do Commonjs, não da AMD.
shin
5

Sim, require é uma função Node.JS e não funciona em scripts do lado do cliente sem certos requisitos. Se você estiver recebendo este erro ao escrever o código electronJS, tente o seguinte:

Em sua declaração BrowserWindow, adicione o seguinte campo webPreferences: ou seja, em vez de simples mainWindow = new BrowserWindow(), escreva

mainWindow = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true
        }
    });
Gaurav Joshi
fonte
2

Para mim, o problema era que eu não tinha meu modo de compilação webpack definido para produção para o pacote que estava me referindo. Definindo explicitamente como "build": "webpack --mode production" corrigiu o problema.

user1278577
fonte