ReferenceError를 제공하는 Javascript require () 함수 : require가 정의되지 않았습니다.


94

기본적으로 다음을 사용하여 Google Play 스토어에서 데이터를 스크랩하기 위해 javascript를 사용하고 있습니다.

1- 요청

2-Cheerios

3-QueryString

다음과 같이 필요한 Github에서 Google Market API를 사용했습니다.

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

그러나 나는 다음을 얻고있다

ReferenceError : require가 정의되지 않았습니다 ...

그래서, 나는 나에게 새롭거나 이것은 평범하지 않은 자바 스크립트를 요구하지 않습니다.


15
예, require브라우저에 정의되어 있지 않습니다. NodeJS 튜토리얼과 브라우저 튜토리얼을 혼합했습니다.
elclanrs

1
사용중인 라이브러리에 대한 링크를 제공하십시오.
Quentin 2014 년

답변:


86

RequireJS는 JavaScript 파일 및 모듈 로더입니다. 브라우저 내 사용에 최적화되어 있지만 Rhino 및 Node와 같은 다른 JavaScript 환경에서도 사용할 수 있습니다. 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을 살펴보십시오.


32

기본적 require()으로 클라이언트 측 자바 스크립트에서는 유효한 함수가 아닙니다. 이 기능을 제공하기 위해 클라이언트 측을 확장하므로 require.js 를 살펴 보는 것이 좋습니다 .


12

requireAMD (Asynchronous Module Definition) API의 일부입니다 .

브라우저 구현은 require.js 를 통해 찾을 수 있으며 기본 지원은 node.js 에서 찾을 수 있습니다 .

당신이 사용하고있는 라이브러리에 대한 문서는 당신이 그것을 사용해야하는 것을 알려줄 것입니다. 저는 그것이 브라우저가 아닌 Node.js에서 실행되도록 의도 된 것 같습니다.


@blogger — 귀하의 질문에는 PHP가 없으며 모두 JavaScript입니다.
Quentin 2014 년

그것에 대해 잘 죄송합니다, 잘못된 질문에 게시, 소스 링크가 삭제되었습니다 : 링크 및 자바 스크립트 기반, 여전히 require.js를 사용하여 문제를 해결할 수 없습니다
Hunain Usman

@blogger —이 모듈에는 Node.JS와 함께 실행되도록 설계되는 모든 특징이 있습니다. 아마도 브라우저에서는 전혀 작동하지 않을 것입니다.
Quentin 2014 년

이 질문의 모든 답변을 읽은 후 이제 이해할 수 있습니다. : p 협조와 코딩에
감사

require는 AMD가 아닌 Commonjs의 일부입니다.
shin

4

예, require는 Node.JS 기능이며 특정 요구 사항 없이는 클라이언트 측 스크립팅에서 작동하지 않습니다. electronJS 코드를 작성하는 동안이 오류가 발생하면 다음을 시도하십시오.

BrowserWindow 선언에서 다음 webPreferences 필드를 추가하십시오. 즉, plain 대신 다음을 mainWindow = new BrowserWindow()작성하십시오.

mainWindow = new BrowserWindow({
        webPreferences: {
            nodeIntegration: true
        }
    });

2

나에게 문제는 내가 참조하고있는 패키지에 대해 webpack 빌드 모드를 프로덕션으로 설정하지 않았다는 것입니다. 명시 적으로 "build": "webpack --mode production"으로 설정하면 문제가 해결되었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.