【无标题】Angular打包问题,程序运行可以,打包报错

0 info it worked if it ends with ok
1 verbose cli [
1 verbose cli   'C:\\Program Files\\nodejs\\node.exe',
1 verbose cli   'C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js',
1 verbose cli   'run',
1 verbose cli   'packagr'
1 verbose cli ]
2 info using npm@6.14.7
3 info using node@v14.8.0
4 verbose run-script [ 'prepackagr', 'packagr', 'postpackagr' ]
5 info lifecycle ng-product-center@10.0.73-beta.53~prepackagr: ng-product-center@10.0.73-beta.53
6 info lifecycle ng-product-center@10.0.73-beta.53~packagr: ng-product-center@10.0.73-beta.53
7 verbose lifecycle ng-product-center@10.0.73-beta.53~packagr: unsafe-perm in lifecycle true
8 verbose lifecycle ng-product-center@10.0.73-beta.53~packagr: PATH: C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\node-gyp-bin;E:\jsfund\product-pc-client\node_modules\.bin;E:\jsfund\product-pc-client\node_modules\.bin;D:\software\Oracle\product\11.2.0\dbhome_1\bin;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;D:\software\jdk\bin;D:\software\apache-maven-3.6.0\bin;D:\mysql\mysql-5.7.12-winx64\bin;C:\Program Files\erl9.3\bin;C:\Python27;C:\Program Files\OpenSSH-Win64;C:\Program Files\nodejs\;D:\software\OpenVPN\bin;D:\software\Git\cmd;D:\software\python\Scripts\;D:\software\python\;D:\software\WebStorm 2020.1\bin;;C:\Users\Administrator\AppData\Roaming\npm
9 verbose lifecycle ng-product-center@10.0.73-beta.53~packagr: CWD: E:\jsfund\product-pc-client
10 silly lifecycle ng-product-center@10.0.73-beta.53~packagr: Args: [ '/d /s /c', 'ng-packagr -p ng-package.json' ]
11 silly lifecycle ng-product-center@10.0.73-beta.53~packagr: Returned: code: 111  signal: null
12 info lifecycle ng-product-center@10.0.73-beta.53~packagr: Failed to exec packagr script
13 verbose stack Error: ng-product-center@10.0.73-beta.53 packagr: `ng-packagr -p ng-package.json`
13 verbose stack Exit status 111
13 verbose stack     at EventEmitter.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\index.js:332:16)
13 verbose stack     at EventEmitter.emit (events.js:314:20)
13 verbose stack     at ChildProcess.<anonymous> (C:\Program Files\nodejs\node_modules\npm\node_modules\npm-lifecycle\lib\spawn.js:55:14)
13 verbose stack     at ChildProcess.emit (events.js:314:20)
13 verbose stack     at maybeClose (internal/child_process.js:1051:16)
13 verbose stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:287:5)
14 verbose pkgid ng-product-center@10.0.73-beta.53
15 verbose cwd E:\jsfund\product-pc-client
16 verbose Windows_NT 10.0.10586
17 verbose argv "C:\\Program Files\\nodejs\\node.exe" "C:\\Program Files\\nodejs\\node_modules\\npm\\bin\\npm-cli.js" "run" "packagr"
18 verbose node v14.8.0
19 verbose npm  v6.14.7
20 error code ELIFECYCLE
21 error errno 111
22 error ng-product-center@10.0.73-beta.53 packagr: `ng-packagr -p ng-package.json`
22 error Exit status 111
23 error Failed at the ng-product-center@10.0.73-beta.53 packagr script.
23 error This is probably not a problem with npm. There is likely additional logging output above.
24 verbose exit [ 111, true ]

解决方法:一行行对比代码,按功能删除再打包,会发现是由于引用一些方法导致死循环,简略记录踩坑日记。

从你提供的错误来看,这是关于Angular中依赖注入(Dependency Injection,简称DI)的一个常见问题Angular使用DI来管理应用中的依赖关系,当找不到所需的依赖时,就会抛出这样的错误。 解决这类问题通常需要以下几个步骤: 1. **确认模块导入**:确保你在需要使用`ComponentFactoryResolver`的模块中已经正确地导入了它。例如,你可以在`AppModule`或相应的模块内做如下操作: ```typescript import { BrowserModule } from '@angular/platform-browser'; import { NgModule } from '@angular/core'; import { AppComponent } from './app.component'; import { ComponentFactoryResolver } from '@angular/core'; // 这里引入 @NgModule({ declarations: [AppComponent], imports: [BrowserModule], providers: [ComponentFactoryResolver, LoadingService], // 将ComponentFactoryResolver加入 providers 中 bootstrap: [AppComponent] }) export class AppModule {} ``` 2. **检查`LoadingService`的构造函数**:确保`LoadingService`的构造函数中使用了`@Inject`或直接注入`ComponentFactoryResolver`,而不是硬编码查找。示例: ```typescript constructor(private resolver: ComponentFactoryResolver) { // ... } ``` 3. **检查模块声明**:如果`ComponentFactoryResolver`是另一个模块提供的,确保那个模块已经被正确地声明并在需要的模块中导入,并且正确配置了依赖注入。 4. **检查懒加载**:如果是懒加载模块导致的问题,检查`loadChildren`属性是否正确配置了依赖项,并且确保在路由初始化完成后,该模块已经成功加载。 5. **清理缓存**:重启开发服务器或者清空浏览器缓存,有时由于缓存原因可能导致错误。 如果以上步骤都确认无误,但问题依然存在,可能是因为`ComponentFactoryResolver`在特定条件下不再可用,比如在某些特殊的构建模式下,你可以尝试暂时关闭AOT编译(`--aot false`)来看看问题是否消失。最后,如果你能提供更详细的代码段和完整的错误堆栈,将有助于定位问题的具体原因。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值