복붙노트

[NODEJS] 노드에서 클라이언트 : catch되지 않은 ReferenceError가 : 정의되지 않은 필요

NODEJS

노드에서 클라이언트 : catch되지 않은 ReferenceError가 : 정의되지 않은 필요

해결법


  1. 1.브라우저 / 클라이언트 측 자바 스크립트에 존재하지 않는 ()이 필요하기 때문입니다.

    브라우저 / 클라이언트 측 자바 스크립트에 존재하지 않는 ()이 필요하기 때문입니다.

    지금 당신은 당신의 클라이언트 측 자바 스크립트 스크립트 관리에 대한 몇 가지 선택을해야 할 것입니다.

    당신은 세 가지 옵션이 있습니다 :

    CommonJS 클라이언트 측 구현은 다음과 같습니다 :

    (당신이 배포하기 전에 그들의 대부분은 빌드 단계가 필요합니다)

    당신은 (사용되지 않음) 구성 요소 대 Browserify 내 비교에 대한 자세한 내용을보실 수 있습니다.

    AMD의 구현은 다음과 같습니다 :

    참고, 하나 같이 갈 선택할 수있는 검색, 당신은 정자에 대해 읽어 것입니다. 바우어는 패키지 종속성 만하고 CommonJS와 AMD 같은 모듈 정의를 unopinionated된다.

    이 몇 가지 도움이되기를 바랍니다.


  2. 2.나는 렌더러 프로세스와 주요 공정 간의 IPC 통신을 필요로 전자 환경에서 오는입니다. 렌더러 프로세스는 스크립트 태그 사이의 HTML 파일에 앉아와 같은 오류가 발생합니다. 라인

    나는 렌더러 프로세스와 주요 공정 간의 IPC 통신을 필요로 전자 환경에서 오는입니다. 렌더러 프로세스는 스크립트 태그 사이의 HTML 파일에 앉아와 같은 오류가 발생합니다. 라인

    const {ipcRenderer} = require('electron')
    

    포착되지 않은 오류 ReferenceError : 정의되지 않은 필요

    나는 (이 HTML 파일이 포함됩니다) 브라우저 창은 원래의 주요 과정에서 생성 될 때 참으로 노드 통합을 지정하여 있음을 해결할 수 있었다.

    function createAddItemWindow() {
    //Create new window
    addItemWindown = new BrowserWindow({
        width: 300,
        height: 200,
        title: 'Add Item',
    
        //The lines below solved the issue
        webPreferences: {
            nodeIntegration: true
        }
    })}
    

    그것은 나를 위해 문제를 해결했다. 이 솔루션은 여기에서 제안되었다. 이 다른 사람을 도움이 희망. 건배.


  3. 3.ES6는 : HTML에서 속성 유형 = "모듈"(브라우저 지원)를 사용하여 주요 JS 파일을 포함 :

    ES6는 : HTML에서 속성 유형 = "모듈"(브라우저 지원)를 사용하여 주요 JS 파일을 포함 :

    <script type="module" src="script.js"></script>
    

    그리고 script.js 파일에 같은 다른 파일을 포함한다 :

    import { hello } from './module.js';
    ...
    // alert(hello());
    

    내부는 가져올 것이라고 기능 / 클래스를 내 보내야합니다 파일 (module.js를) 포함

    export function hello() {
        return "Hello World";
    }
    

    여기 예를 들어 작업. 여기에 더 많은 정보


  4. 4.내 경우에는 내가 다른 솔루션을 사용했다.

    내 경우에는 내가 다른 솔루션을 사용했다.

    프로젝트 CommonJs을 필요로하지 않으며,이 ES3 호환성 (모듈은 지원되지 않음)이 있어야합니다 모든 당신은 당신의 tsconfig가 포함되어 있지 않기 때문에 그냥 코드에서 모든 수출입 문을 제거한다 필요

    "module": "commonjs"
    

    하지만 당신의 참조 파일 가져 오기 및 내보내기 문을 사용

    import { Utils } from "./utils"
    export interface Actions {}
    

    최종 생성 된 코드는 항상 같은 라인 (적어도 타이프 3.0)해야합니다

    "use strict";
    exports.__esModule = true;
    var utils_1 = require("./utils");
    ....
    utils_1.Utils.doSomething();
    

  5. 5.심지어이하지 않습니다 작업을 사용하여, 나는 최선의 해결책이 browserify 생각 :

    심지어이하지 않습니다 작업을 사용하여, 나는 최선의 해결책이 browserify 생각 :

    module.exports = {
      func1: function () {
       console.log("I am function 1");
      },
      func2: function () {
        console.log("I am function 2");
      }
    };
    
    -getFunc1.js-
    var common = require('./common');
    common.func1();
    

  6. 6.이것은 나를 위해 일한

    이것은 나를 위해 일한


  7. 7.교체 모든 import 문에 문을 필요로한다. 예:

    교체 모든 import 문에 문을 필요로한다. 예:

    //BEFORE:
    const Web3 = require('web3');
    //AFTER:
    import Web3 from 'web3';
    

    나를 위해 일했다.

  8. from https://stackoverflow.com/questions/19059580/client-on-node-uncaught-referenceerror-require-is-not-defined by cc-by-sa and MIT license