Angular 6 - 尝试为应用程序提供服务时未定义进程

IT技术 javascript angular angular6
2021-03-05 10:51:29

当我尝试使用 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 属性未定义有关。

我在这里关注本教程

我的确切代码可以在这里找到

本教程似乎使用了旧版本的 angular,它使用 .angular-cli.json 而不是新的 angular.json,我认为这是尝试指定环境变量时出现的问题的一部分。

5个回答

在 中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;
为什么我的应用会随机需要这个?
2021-04-27 10:51:29

为了解决这个问题,我在“polyfills.ts”文件中添加了以下几行,

(window as any).global = window;
global.Buffer = global.Buffer || require('buffer').Buffer;
global.process = require('process');

这是与 Angular v6 的不兼容。他们删除了浏览器中processglobal变量的支持(垫片)

我建议你使用 Angular 5,直到cosmic.js修复错误。也许你甚至可以为它打开一个问题。

感谢 filipesilva 评论的链接。了解为什么存在这种不兼容性非常有用。事实是,我们不应该使用变通方法来使 'path'、'fs' 或其他节点module在浏览器中工作......我们不应该使用它们并在需要时使用 polyfill。
2021-05-15 10:51:29

这与 Angular 6 不兼容。他们在浏览器中删除了对进程和全局变量的支持(垫片)。

在关闭 index.html 之前添加以下内容将消除错误。

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

只要您不满意在 Angular 应用程序中放入一些随机逻辑polyfills.ts并寻找实际访问process.envAngular 应用程序的方法,请找到以下解决方案。

将您更改"builder": "@angular-devkit/build-angular:dev-server""builder": "@angular-builders/custom-webpack:dev-server"in angular.json

process被再次去除?我已经为自定义 webpack 完成了这项工作,但我仍然遇到process错误
2021-04-24 10:51:29
好久没碰Angular了,忍不住:(
2021-04-25 10:51:29