web-dev-qa-db-ja.com

Angular 6-アプリケーションを提供しようとしたときにプロセスが定義されていません

Cosmicjsを使用してangular 6アプリケーションを提供しようとすると、次のエラーが表示されます。

Uncaught ReferenceError: process is not defined
    at Object../node_modules/cosmicjs/dist/index.js (index.js:6)
    at __webpack_require__ (bootstrap:81)
    at Object../src/app/app.component.ts (main.js:94)
    at __webpack_require__ (bootstrap:81)
    at Object../src/app/app.module.ts (app.component.ts:9)
    at __webpack_require__ (bootstrap:81)
    at Object../src/main.ts (environment.ts:18)
    at __webpack_require__ (bootstrap:81)
    at Object.0 (main.ts:12)
    at __webpack_require__ (bootstrap:81)

私の最新の理論は、process.envプロパティが未定義であることと関係しています。

私はこのチュートリアルに従っています here

そして私の正確なコードは見つけることができます here

チュートリアルでは、新しいangle.jsonの代わりに.angular-cli.jsonを使用する古いバージョンのangularを使用しているようです。これは、環境を指定する際の問題の一部だと思います変数。

9
Danoram

polyfill.tsで、次の行を追加します。

(window as any).process = {
  env: { DEBUG: undefined },
};

参照: https://github.com/algolia/algoliasearch-client-javascript/issues/691


またはnpm i -S process、次にこれをpolyfill.tsに追加します。

import * as process from 'process';
window['process'] = process;
17
A T

これはAngular v6。との非互換性です。ブラウザでprocessおよびglobal変数の 削除されたサポート (シム)。

Angular 5、 cosmic.js がエラーを修正するまで使用することをお勧めします。問題を解決することもできます。

6

これは、Angular 6との非互換性です。彼らは、ブラウザのプロセスおよびグローバル変数のサポート(シム)を削除しました。

Index.htmlを閉じる前に次を追加すると、エラーが削除されます。

<script>
  var global = global || window;
  var Buffer = Buffer || [];
  var process = process || {
    env: { DEBUG: undefined },
    version: []
  };
</script>
4
Gurjeet singh