在更新到 Angular 9.1 期间,__ngcc_entry_points__.json我在项目的所有根文件夹中都出现了一个名为的文件。这个文件应该被添加到源代码管理中,还是被忽略?
它似乎只包含一些哈希信息,所以我认为它可以被忽略?
我刚刚从 Angular 8.2 更新到 9。
如果我禁用 ivy 一切正常,但是当它启用时,我收到了很多似乎有点模糊的错误,至少我在谷歌搜索时找不到任何结果。
我很确定我已经完成了更新所需的一切,即将延迟加载更改为使用动态导入和固定的 Angular Material 导入路径等。
我还将在此处包含我的package.json依赖项
"dependencies": {
"@angular/animations": "^9.0.0",
"@angular/cdk": "^9.0.0",
"@angular/common": "^9.0.0",
"@angular/compiler": "^9.0.0",
"@angular/core": "^9.0.0",
"@angular/fire": "^5.4.2",
"@angular/flex-layout": "^9.0.0-beta.29",
"@angular/forms": "^9.0.0",
"@angular/http": "^7.2.15",
"@angular/material": "^9.0.0",
"@angular/material-moment-adapter": "^8.2.2",
"@angular/platform-browser": "^9.0.0",
"@angular/platform-browser-dynamic": "^9.0.0",
"@angular/platform-server": "^9.0.0",
"@angular/router": "^9.0.0",
"@ngrx/effects": "^8.3.0",
"@ngrx/entity": "^8.3.0",
"@ngrx/router-store": "^8.3.0",
"@ngrx/store": "^8.3.0",
"@zxing/ngx-scanner": "^2.0.1",
"angular-resizable-element": "^3.2.4",
"angular-resize-event": "^1.1.1",
"angular2-highcharts": "^0.5.5",
"core-js": "^3.6.4",
"detect-browser": "^4.7.0",
"firebase": "^7.8.0",
"google-polyline": "^1.0.3",
"hammerjs": "^2.0.8",
"highcharts": "^8.0.0",
"i18n-iso-countries": "^4.3.1",
"leaflet": "^1.5.1",
"mapbox-gl": …Run Code Online (Sandbox Code Playgroud) 我已从 Angular 8 升级到 9,并按照此处的所有步骤启用了 Ivy 。当我运行npm install一些我的包时抛出错误:
Tried to overwrite <package_path>.__ivy_ngcc_bak with an ngcc back up file, which is disallowed.
这是什么意思,为什么会这样?我很难找到有关它的任何信息。我已经为所有这些抛出此错误的软件包安装了最新版本,但在运行npm install. 谢谢!
我尝试按照 Angular 更新指南从 Angular 8 升级到 Angular 10。
我的项目由核心应用程序、共享(2 个库、谷歌地图和共享组件)和一个额外的 apk fsm(2 个库、应用程序及其元数据)组成。
核心和共享的构建正在通过,但 fsm 构建失败,并显示“错误:无法在 C:/Users/PATH/fsm-frontend/node_modules/shared-frontend/src/components/chip/chip.component 中写入对 ChipComponent 的引用” .ts 来自 C:/Users/PATH/fsm-frontend/node_modules/shared-frontend/src/components/chip/chip.module.ts “错误。
ChipComponent 本身没有问题,但可能在某些导入或 tsconfig 中存在问题。
共享 tsconfig.json:
{
"compileOnSave": false,
"compilerOptions": {
"baseUrl": "./",
"downlevelIteration": true,
"importHelpers": true,
"outDir": "./dist/out-tsc",
"sourceMap": true,
"declaration": false,
"module": "es2020",
"moduleResolution": "node",
"emitDecoratorMetadata": true,
"experimentalDecorators": true,
"target": "es2015",
"typeRoots": [
"node_modules/@types"
],
"lib": [
"es2017",
"dom"
],
"paths": {
"shared-frontend": [
"dist/shared-frontend"
],
"shared-frontend/*": [
"dist/shared-frontend/*"
],
"map": [
"dist/map"
], …Run Code Online (Sandbox Code Playgroud) 我已将我的 angular 7 应用程序迁移到 8.0.0,我现在正在尝试新的编译器 ivy。
该应用程序在没有常春藤的情况下可以完美运行,但是当我尝试使用它进行编译时,出现以下错误:
不能将@Input 装饰器与查询装饰器结合使用
没有行号,没有文件,什么都没有......很难调试任何东西。
在那之前我有警告,但我不知道它是否相关:
入口点“angular-tree-component”中的警告包含对“lodash/defaultsDeep”、“lodash/get”、“lodash/omit”、“lodash/isNumber”、“lodash/first”、“lodash/last”的深度导入, 'lodash/some', 'lodash/every', 'lodash/compact', 'lodash/find', 'lodash/isString', 'lodash/isFunction', 'lodash/throttle', 'lodash/includes', '洛达什/挑选'。这可能不是问题,但可能会导致入口点的编译出现乱序。
有任何想法吗 ?
受影响的包裹
HMR + 常春藤
这是回归吗?
常春藤之前,它有效
描述
好像 IVY 和 HMR 不能很好地一起玩?但是我已经看到他们的票已经关闭了,所以我想这应该是可能的。我在代码更改后重新加载:
未处理的承诺拒绝:类型 AppComponent 是 2 个模块声明的一部分:AppModule 和 AppModule!请考虑将 AppComponent 移至导入 AppModule 和 AppModule 的更高模块。您还可以创建一个新的 NgModule 来导出并包含 AppComponent,然后在 AppModule 和 AppModule 中导入该 NgModule。Type Background 是 2 个模块声明的一部分:AppModule 和 AppModule!请考虑将 Background 移至导入 AppModule 和 AppModule 的更高模块。您还可以创建一个新的 NgModule 来导出并包含 Background,然后在 AppModule 和 AppModule 中导入该 NgModule。
...
我们可以看到其他人如何更好地进行调查:https : //www.gitmemory.com/issue/storybookjs/storybook/8494/551763214
当前环境
角度版本:
ng 9.0.1
cli 9.0.1
webpack-hmr hot-module-replacement angular angular-ivy angular9
当我尝试加载刚刚用 --prod 标志编译的应用程序时,我收到此错误Uncaught (in promise): TypeError: Cannot read property \'\xc9\xb5cmp\' of undefined in angular,并将 optimization 和 buildOptimizer 设置为 true,当我将两者设置为 false 时,问题消失,应用程序加载时没有问题,但应用程序大小更大,并且性能不符合预期,我需要构建一个将 optimization 和 buildOptimizer 设置为 true 的产品,有人对这个问题有好的解决方案吗?
角度.json 文件:
\n "staging": {\n "fileReplacements": [\n {\n "replace": "src/environments/environment.ts",\n "with": "src/environments/environment.staging.ts"\n }\n ],\n "optimization": true,\n "outputHashing": "all",\n "sourceMap": false,\n "extractCss": true,\n "namedChunks": false,\n "extractLicenses": true,\n "vendorChunk": false,\n "buildOptimizer": true,\n "budgets": [\n {\n "type": "initial",\n "maximumWarning": "2mb",\n "maximumError": "5mb"\n },\n {\n "type": "anyComponentStyle",\n "maximumWarning": "6kb",\n "maximumError": "10kb"\n }\n ]\n }\n …Run Code Online (Sandbox Code Playgroud) 我有一个 Angular 11 项目,它试图集成 SpreadJS Designer,但在 ngcc 步骤中失败,但Compiling @grapecity/spread-sheets-designer-angular : esm2015 as esm2015有异常:
工人 #3 上的错误:错误:违反不变:没有格式路径或格式为 /path/to/my/project/node_modules/@grapecity/spread-sheets-designer-angular : main (formatPath: bundles/grapecity-spread- sheet-designer-angular.umd.js | 格式:未定义)
如何进一步诊断和解决此问题?
这是npx ng version我的项目的输出:
Angular CLI: 11.0.2
Node: 14.15.1
OS: linux x64
Angular: 11.0.2
... animations, cli, common, compiler, compiler-cli, core, forms
... language-service, platform-browser, platform-browser-dynamic
... router
Ivy Workspace: Yes
Package Version
---------------------------------------------------------
@angular-devkit/architect 0.1100.2
@angular-devkit/build-angular 0.1100.2
@angular-devkit/core 11.0.2
@angular-devkit/schematics 11.0.2
@angular/cdk 11.0.1
@angular/material 11.0.1
@schematics/angular 11.0.2
@schematics/update 0.1100.2
rxjs 6.5.3 …Run Code Online (Sandbox Code Playgroud) 本文提到
常春藤为未来打开了一些可能性。现在应该可以在没有zone.js的情况下运行应用程序,并以半手动方式处理变更检测(有点像使用React一样)。这些API已经存在,但只是实验性的,没有记录在案,并且可能会在不久的将来发生变化。
我认为已经可以在Ivy之前运行没有zone.js的应用程序了。常春藤是否允许半手动处理变更检测?这些实验性API在哪里?有文件吗?常春藤仍然使用zone.js吗?
我的目标是通过手动触发更改检测来将更改检测降至最低。这样做的最佳选择是什么。特别是使用常春藤时最好的选择是什么。
与“完整”编译模式相比,为什么在“部分”编译模式下编译的库在消费者应用程序内部构建得如此缓慢?
angular ×10
angular-ivy ×10
angular9 ×2
angular10 ×1
angular12 ×1
npm ×1
spreadjs ×1
typescript ×1
webpack-hmr ×1
zone ×1