ng build --prod 在 ag-grid v 22.1.1 升级后失败

ng build --prod failed after ag-grid v 22.1.1 upgrade

我从版本 18 开始使用 ,目前是 20.0.0

我正在升级到最新版本 - 22.1.1。

由于破坏性更改解决 warning/errors 后,一切 - 包括 'ng serve' 工作正常。

但是,当我尝试在生产模式下构建 angular 应用程序时,它失败了。

ERROR in ./app/app.module.ngfactory.js
Module not found: Error: Can't resolve 'ag-grid-community/dist/lib/eventService' in 'C:\project\src\app'ERROR in ./main.ts
Module not found: Error: Can't resolve 'ag-grid-enterprise/main' in 'C:\project\src'

下面是我得到的控制台日志。有人可以帮忙吗?

PS C:\projectDirectory> npm run build:prod

> project@0.0.1 build:prod <C:\projectDirectory>
> node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build --prod --base-href ./

Browserslist: caniuse-lite is outdated. Please run next command `npm update`

Date: 2020-02-06T14:34:51.950Z
Hash: f5504506298058ba661b
Time: 303119ms
chunk {0} runtime.0feced4b926ef4569891.js (runtime) 2.35 kB [entry] [rendered]
chunk {1} 1.ff56049eefdf00546e5b.js () 20.1 kB [rendered]
chunk {2} common.778967e60acae82560b8.js (common) 1.59 kB [rendered]
chunk {3} 3.c9c6f4b4ee31655957c5.js () 68.6 kB [rendered]
chunk {4} 4.cd47c0ed33945d8a2cd1.js () 65.8 kB [rendered]
chunk {5} main.9f72bd0e6a2ce7cabf09.js (main) 1.13 MB [initial] [rendered]
chunk {6} polyfills.8c9e800099caebde3f97.js (polyfills) 151 kB [initial] [rendered]
chunk {7} polyfills-es5.1ecef396b36e47074889.js (polyfills-es5) 68.1 kB [initial] [rendered]
chunk {8} styles.40f4753a24be96f0632d.css (styles) 353 kB [initial] [rendered]
chunk {9} vendor.62a5b62a3c39ede2ff2f.js (vendor) 6.34 MB [initial] [rendered]
chunk {10} 10.36d9b310fedf245aa212.js () 123 kB [rendered]
chunk {11} 11.7f7517540c764751bd2c.js () 1.62 MB [rendered]
chunk {12} 12.79a7ea4d472beb37c285.js () 88.8 kB [rendered]
chunk {13} 13.4c9f9392997233b09d52.js () 318 kB [rendered]
chunk {14} 14.62996cef37bc77009502.js () 146 kB [rendered]
chunk {scripts} scripts.8af46854aabf37ded6dd.js (scripts) 125 kB [entry] [rendered]
ERROR in ./app/app.module.ngfactory.js
Module not found: Error: Can't resolve 'ag-grid-community/dist/lib/eventService' in 'C:\project\src\app'ERROR in ./main.ts
Module not found: Error: Can't resolve 'ag-grid-enterprise/main' in 'C:\project\src'
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! project@0.0.1 build:prod: `node --max_old_space_size=4096 node_modules/@angular/cli/bin/ng build --prod --base-href ./`

我们已将 ag-grid 重命名为 ag-grid-community,所以现在您需要 运行

npm install --save ag-grid-community ag-grid-angular

您似乎错过了 migration guide 中的一些内容。

是的,这并不明显,但您需要为该更新更改软件包。

长话短说:您必须使用从 22.0.0 开始的新软件包

错误:

"ag-grid-angular": "22.1.1",
"ag-grid-community": "22.1.1",
"ag-grid-enterprise": "22.1.1"

正确:

"@ag-grid-community/all-modules": "22.1.1",
"@ag-grid-community/angular": "22.1.1",
"@ag-grid-community/core": "22.1.1",
"@ag-grid-enterprise/all-modules": "22.1.2"

在与我的一位同事讨论过此事后,我认为实际的包引用是不正确的。您仍然可以按照旧方法进行操作,只是不利用模块功能。

我认为您的特定错误的根本原因是例如“/main”引用。尝试更改来自

的导入
'ag-grid-community/dist/lib/eventService'
'ag-grid-enterprise/main'

'ag-grid-community'
'ag-grid-enterprise'

不再保证特定路径。