Javascript 角度6-尝试为应用程序提供服务时未定义流程
当我尝试使用cosmicjs为angular 6应用程序提供服务时,我遇到以下错误:Javascript 角度6-尝试为应用程序提供服务时未定义流程,javascript,angular,angular6,Javascript,Angular,Angular6,当我尝试使用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
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,我认为这是试图指定环境变量的问题的一部分。这与angular v6不兼容。浏览器中的
过程
和全局
变量(垫片)
我建议您使用Angular 5,直到修复错误。也许你甚至可以为它打开一个问题 在
polyfill.ts
中,添加以下行:
(window as any).process = {
env: { DEBUG: undefined },
};
参考:
或
npm i-S过程
,然后将其添加到polyfill.ts
:
import * as process from 'process';
window['process'] = process;
这与Angular 6不兼容。他们删除了浏览器中对流程和全局变量的支持(垫片) 在关闭之前将以下内容添加到index.html将删除错误
<script>
var global = global || window;
var Buffer = Buffer || [];
var process = process || {
env: { DEBUG: undefined },
version: []
};
</script>
var global=全局| |窗口;
var Buffer=Buffer | |[];
var过程=过程| |{
环境:{DEBUG:undefined},
版本:[]
};
为了解决这个问题,我在“polyfills.ts”文件中添加了以下行:
(window as any).global = window;
global.Buffer = global.Buffer || require('buffer').Buffer;
global.process = require('process');
只要您不满意将一些随机逻辑放入
polyfills.ts
中,并寻找在您的Angular应用程序中实际访问process.env
的方法,请找到以下解决方案
将
“生成器”:“@angular-devkit/build-angular:dev-server”
更改为“生成器”:“@angular-builders/custom-webpack:dev-server”
中的angular.jsonThx,以获取指向filipesilva注释的链接。理解为什么存在这种不兼容是非常有用的。事实上,我们不应该使用变通方法使“路径”、“fs”或其他节点模块在浏览器中工作。。。我们不应该使用它们,如果需要,可以使用多边形填充。