1. ホーム
  2. javascript

[解決済み] angular-6.xにアップグレードすると、"Uncaught ReferenceError: global is not defined "と表示される。

2022-02-26 06:22:03

質問

プロジェクトをangular-5.xからangular-6.xにアップグレードしたら、以下のエラーが出るようになり、ダミーのグローバル変数の作成もここにあるようにうまくいかなくなりました。 Angular 6 Auth0 - グローバルが定義されていません。

エラーの内容は以下の通りです。

Uncaught ReferenceError: global is not defined
    at Object../node_modules/has-binary2/index.js (index.js:10)
    at __webpack_require__ (bootstrap:81)
    at Object../node_modules/socket.io-parser/index.js (index.js:8)
    at __webpack_require__ (bootstrap:81)
    at Object../node_modules/socket.io-client/lib/index.js (index.js:7)
    at __webpack_require__ (bootstrap:81)
    at Object../src/app/app4pc/apiConnection/services/ApiConnectionServer.ts (auth.interceptor.ts:8)
    at __webpack_require__ (bootstrap:81)
    at Object../src/app/app4pc/apiConnection/toServer.module.ts (ApiConnectionServer.ts:11)
    at __webpack_require__ (bootstrap:81)

これを解決した後、以下のエラーが発生しました。

Uncaught ReferenceError: process is not defined
    at Object../node_modules/process-nextick-args/index.js (index.js:3)
    at __webpack_require__ (bootstrap:81)
    at Object../node_modules/readable-stream/lib/_stream_readable.js (_stream_readable.js:26)
    at __webpack_require__ (bootstrap:81)
    at Object../node_modules/readable-stream/readable-browser.js (readable-browser.js:1)
    at __webpack_require__ (bootstrap:81)
    at Object../node_modules/simple-peer/index.js (index.js:7)
    at __webpack_require__ (bootstrap:81)
    at Object../src/app/util/services/call.services.ts (notification.service.ts:12)
    at __webpack_require__ (bootstrap:81)    

そして、延々と続く。

解決方法は?

index.htmlなどの開始ページに以下のコードを追加してください。

var global = global || window;
var Buffer = Buffer || [];
var process = process || {
  env: { DEBUG: undefined },
  version: []
};

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Client</title>
  <base href="/">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <script>
    var global = global || window;
    var Buffer = Buffer || [];
    var process = process || {
      env: { DEBUG: undefined },
      version: []
    };
  </script>
</head>
<body>
  <app-root>
    <div class="loader"></div>
  </app-root>
</body>
</html>

上記は、ハイブリッドアプリ(Node環境)でも、ブラウザでも動作します。

<ブロッククオート
  • for "Uncaught ReferenceError: global is not defined"。

    var global = global || window;
    
    
  • for "Uncaught ReferenceError: Buffer is not defined"です。

    var Buffer = Buffer || [];
    
    
  • for "Uncaught ReferenceError: process is not defined"。

    var process = process || {
      env: { DEBUG: undefined }
    }
    
    
  • for "Uncaught TypeError: 未定義のプロパティ 'slice'を読み取れません。

    var process = process || {
      env: { DEBUG: undefined },
      version: []
    };