Angular: utils/util.js -> Uncaught ReferenceError: process is not defined
Angular: utils/util.js -> Uncaught ReferenceError: process is not defined
我觉得这个问题应该简单地解决,但是经过几次尝试,我就是没有解决方案。
这是我收到的错误:
Uncaught ReferenceError: process is not defined
38509 @ [PathToProject]\node_modules\util\util.js:109
当我将 web3 实例化到 clean/new 站点时(还有另外两个 'test' 组件,一个 link 一键)
我搜索并发现大量信息表明
- process 是服务器端 'node' var,我可以通过添加到我的 webpack.config.js 来将其设置为在客户端可用已经完成了。
- 我也许可以通过在我的 app.component.ts 中声明一个全局 angular var 来解决,但似乎这个依赖项目 .js 文件没有访问它。
我也尝试过直接更新依赖项项目,但即使进行了编译,我的更改似乎也没有分发到 webpack 构建 /dist/ 结果中。
我认为这可能有一个非常简单的解决方案,但我只是忽略了它。我只是在这里转动我的轮胎,需要一点帮助,但我是我圈子中第一个冒险进入 web3 并且没有亲密朋友可以反弹的人。这里有人可以提供一些见解或替代方法来解决这个问题吗?
相关代码位:
webpack.config.js
var webpack = require('webpack');
const path = require('path');
module.exports = {
module: {
rules: [
{
test: /\.(sass|less|css|ts)$/,
use: [
'ts-loader'
],
}
],
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': 'develop',
})
],
entry: './src/main.ts',
output: {
filename: 'main.js',
path: path.resolve(__dirname, 'dist'),
},
resolve: {
extensions: [ '.js', '.ts', '.html' ],
modules: [
path.resolve(__dirname, 'node_modules/'),
path.resolve("", "src")
],
alias: {
Environments: path.resolve(__dirname, 'src/environments/'),
},
fallback: {
"fs": false,
"tls": false,
"net": false,
"path": false,
"zlib": false,
"http": require.resolve("stream-http"),
"https": require.resolve("https-browserify"),
"stream": false,
"crypto": require.resolve("crypto-browserify"),
"crypto-browserify": require.resolve('crypto-browserify'),
},
}
}
全球-constants.ts
export class GlobalConstants {
public static process: any = {
env: {
NODE_ENV: 'development'
}
}
}
app.component.ts
import { Component } from '@angular/core';
import{ GlobalConstants } from './common/global-constants';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Cool Title';
process = GlobalConstants.process;
}
utils/util.js 的相关位(第 106-116 行)
var debugs = {};
var debugEnvRegex = /^$/;
if (process.env.NODE_DEBUG) {
var debugEnv = process.env.NODE_DEBUG;
debugEnv = debugEnv.replace(/[|\{}()[\]^$+?.]/g, '\$&')
.replace(/\*/g, '.*')
.replace(/,/g, '$|^')
.toUpperCase();
debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');
}
真诚感谢任何帮助。
将以下内容添加到 polyfills.ts(通常在 src 目录中):
(window as any).global = window;
global.Buffer = global.Buffer || require('buffer').Buffer;
global.process = require('process');
我觉得这个问题应该简单地解决,但是经过几次尝试,我就是没有解决方案。
这是我收到的错误:
Uncaught ReferenceError: process is not defined
38509 @ [PathToProject]\node_modules\util\util.js:109
当我将 web3 实例化到 clean/new 站点时(还有另外两个 'test' 组件,一个 link 一键)
我搜索并发现大量信息表明
- process 是服务器端 'node' var,我可以通过添加到我的 webpack.config.js 来将其设置为在客户端可用已经完成了。
- 我也许可以通过在我的 app.component.ts 中声明一个全局 angular var 来解决,但似乎这个依赖项目 .js 文件没有访问它。
我也尝试过直接更新依赖项项目,但即使进行了编译,我的更改似乎也没有分发到 webpack 构建 /dist/ 结果中。
我认为这可能有一个非常简单的解决方案,但我只是忽略了它。我只是在这里转动我的轮胎,需要一点帮助,但我是我圈子中第一个冒险进入 web3 并且没有亲密朋友可以反弹的人。这里有人可以提供一些见解或替代方法来解决这个问题吗?
相关代码位:
webpack.config.js
var webpack = require('webpack');
const path = require('path');
module.exports = {
module: {
rules: [
{
test: /\.(sass|less|css|ts)$/,
use: [
'ts-loader'
],
}
],
},
plugins: [
new webpack.DefinePlugin({
'process.env.NODE_ENV': 'develop',
})
],
entry: './src/main.ts',
output: {
filename: 'main.js',
path: path.resolve(__dirname, 'dist'),
},
resolve: {
extensions: [ '.js', '.ts', '.html' ],
modules: [
path.resolve(__dirname, 'node_modules/'),
path.resolve("", "src")
],
alias: {
Environments: path.resolve(__dirname, 'src/environments/'),
},
fallback: {
"fs": false,
"tls": false,
"net": false,
"path": false,
"zlib": false,
"http": require.resolve("stream-http"),
"https": require.resolve("https-browserify"),
"stream": false,
"crypto": require.resolve("crypto-browserify"),
"crypto-browserify": require.resolve('crypto-browserify'),
},
}
}
全球-constants.ts
export class GlobalConstants {
public static process: any = {
env: {
NODE_ENV: 'development'
}
}
}
app.component.ts
import { Component } from '@angular/core';
import{ GlobalConstants } from './common/global-constants';
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.scss']
})
export class AppComponent {
title = 'Cool Title';
process = GlobalConstants.process;
}
utils/util.js 的相关位(第 106-116 行)
var debugs = {};
var debugEnvRegex = /^$/;
if (process.env.NODE_DEBUG) {
var debugEnv = process.env.NODE_DEBUG;
debugEnv = debugEnv.replace(/[|\{}()[\]^$+?.]/g, '\$&')
.replace(/\*/g, '.*')
.replace(/,/g, '$|^')
.toUpperCase();
debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');
}
真诚感谢任何帮助。
将以下内容添加到 polyfills.ts(通常在 src 目录中):
(window as any).global = window;
global.Buffer = global.Buffer || require('buffer').Buffer;
global.process = require('process');