Javascript 生产建设中存在角度问题,但本地开发中不存在角度问题。错误类型错误:无法读取属性';呼叫';未定义的
我一直有一个问题,我的Angular 8应用程序中的一个在本地运行(ng serve)时没有问题,正如预期的那样,但是,当在生产(ng build)上构建和运行时,当在我的应用程序中单击组件并运行代码时,它会给我以下错误 控制台中接收到错误:Javascript 生产建设中存在角度问题,但本地开发中不存在角度问题。错误类型错误:无法读取属性';呼叫';未定义的,javascript,node.js,angular,typescript,Javascript,Node.js,Angular,Typescript,我一直有一个问题,我的Angular 8应用程序中的一个在本地运行(ng serve)时没有问题,正如预期的那样,但是,当在生产(ng build)上构建和运行时,当在我的应用程序中单击组件并运行代码时,它会给我以下错误 控制台中接收到错误: ERROR TypeError: Cannot read property 'call' of undefined at d.l (main-es2015.5d76d03ab70e1112760a.js:1) at new d (main-
ERROR TypeError: Cannot read property 'call' of undefined
at d.l (main-es2015.5d76d03ab70e1112760a.js:1)
at new d (main-es2015.5d76d03ab70e1112760a.js:1)
at Giow.e.exports (main-es2015.5d76d03ab70e1112760a.js:1)
at e.df (main-es2015.5d76d03ab70e1112760a.js:1)
at e.stretch (main-es2015.5d76d03ab70e1112760a.js:1)
at e.getHashPassword (main-es2015.5d76d03ab70e1112760a.js:1)
at p.newAccount (main-es2015.5d76d03ab70e1112760a.js:1)
at Object.handleEvent (main-es2015.5d76d03ab70e1112760a.js:1)
at Object.handleEvent (main-es2015.5d76d03ab70e1112760a.js:1)
at Object.handleEvent (main-es2015.5d76d03ab70e1112760a.js:1)
br @ main-es2015.5d76d03ab70e1112760a.js:1
handleError @ main-es2015.5d76d03ab70e1112760a.js:1
Xp @ main-es2015.5d76d03ab70e1112760a.js:1
(anonymous) @ main-es2015.5d76d03ab70e1112760a.js:1
(anonymous) @ main-es2015.5d76d03ab70e1112760a.js:1
invokeTask @ polyfills-es2015.a8cec314c5933902d1c0.js:1
onInvokeTask @ main-es2015.5d76d03ab70e1112760a.js:1
invokeTask @ polyfills-es2015.a8cec314c5933902d1c0.js:1
runTask @ polyfills-es2015.a8cec314c5933902d1c0.js:1
invokeTask @ polyfills-es2015.a8cec314c5933902d1c0.js:1
y @ polyfills-es2015.a8cec314c5933902d1c0.js:1
b @ polyfills-es2015.a8cec314c5933902d1c0.js:1
使用下面的stackblitz示例禁用缩小后出错:
ERROR TypeError: Cannot read property 'call' of undefined
at Hmac.CipherBase (main-es2015.02649c002b843ca5ea1e.js:63726)
at new Hmac (main-es2015.02649c002b843ca5ea1e.js:63860)
at createHmac (main-es2015.02649c002b843ca5ea1e.js:63907)
at PasswordService.uno_hkdf (main-es2015.02649c002b843ca5ea1e.js:77684)
at PasswordService.stretch (main-es2015.02649c002b843ca5ea1e.js:77671)
at AppComponent.ngOnInit (main-es2015.02649c002b843ca5ea1e.js:77535)
at checkAndUpdateDirectiveInline (main-es2015.02649c002b843ca5ea1e.js:36518)
at checkAndUpdateNodeInline (main-es2015.02649c002b843ca5ea1e.js:47852)
at checkAndUpdateNode (main-es2015.02649c002b843ca5ea1e.js:47791)
at prodCheckAndUpdateNode (main-es2015.02649c002b843ca5ea1e.js:48645)
代码:
ng——版本
任何见解都值得赞赏。谢谢
找到解决方案
看看我创建的stackblitz(根据您的设置,角度为8): 我必须做的一项更改是,使您的代码能够正常工作:
import createHmac from 'create-hmac';
否则(
import*as createHmac from'create hmac';
)会向我抛出一个错误:createHmac不是一个函数
尝试添加构造函数?当您尝试(ng build--aot)或(ng build--prod)时,是否会出现任何生成错误?@akhouri我没有在运行这些命令时出现生成错误,但是,当运行相同的代码时,应用程序返回相同的错误。我使用了你的stackblitz在本地nginx服务器上进行捆绑和测试,无论你做了什么更改,都会出现相同的原始错误。我认为这与捆绑销售有关,但我还不确定到底是什么。
1. rm -rf /node_modules/ -> npm update -> npm install
2. require() instead of import()
3. es5 to es2015 in tsconfig.json
4. Updating create-hmac and pbkdf2 packages
5. Downgrading @angular/cli and @angular-devkit/build-angular
6. Build with other flags such as ```ng build --build-optimizer --aot```
7. Node v10.15, v10.16, and v12.16
8. Using a constructor for createHmac
9. Using import createHmac from 'create-hmac'
Angular CLI: 8.3.20
Node: 10.16.0
OS: linux x64
Angular: 8.2.14
... animations, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Package Version
-----------------------------------------------------------
@angular-devkit/architect 0.803.20
@angular-devkit/build-angular 0.803.20
@angular-devkit/build-optimizer 0.803.20
@angular-devkit/build-webpack 0.803.20
@angular-devkit/core 8.3.20
@angular-devkit/schematics 8.3.20
@angular/cdk 8.2.3
@angular/cli 8.3.20
@angular/http 7.2.16
@angular/material 8.2.3
@ngtools/webpack 8.3.20
@schematics/angular 8.3.20
@schematics/update 0.803.20
rxjs 6.5.4
typescript 3.5.3
webpack 4.39.2
import createHmac from 'create-hmac';