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

기본적으로 다음을 사용하여 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가 정의되지 않았습니다 …

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



답변

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을 살펴보십시오.


답변

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


답변

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

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

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


답변

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

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

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


답변

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


답변