问题标签 [angular-compiler-cli]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2559 浏览

angular - Angular2:生成 metadata.json 和 ngsummary.json

亲爱的 Angular 2 开发人员,

我正在努力寻找关于 angular 2 编译器 (ngc) 的体面文档。

我想做的事:我有一个文件夹,其中包含一个 Angular 2 日志库,其入口点是“logging.module.ts”。到目前为止,我已经通过 tsconfig 文件对其进行了编译,并且运行良好。

现在,我想切换到角度编译器。然而,当我运行 ngc. 仅生成 *.ngfactory.ts 和 *.ngsummary.json 文件。

我看不到任何 .js .d.ts 或 .metadata.json 文件。(如果我理解正确,ngc 被设计为打字稿编译器的“替代品”)。

任何提示我可能做错了什么?

谢谢你的帮助。

0 投票
1 回答
395 浏览

angular - 将汇总构建升级到最新的 @angular/2.4.8 时出错

使用 ngc 编译我的 Angular 2 应用程序后,我遇到了 Rollup 错误。有没有其他人克服了这个问题?

这是我的 package.json:

"dependencies": { "@angular/common": "~2.4.0", "@angular/compiler": "~2.4.0", "@angular/compiler-cli": "~2.4.0", "@angular/core": "~2.4.0", "@angular/forms": "~2.4.0", "@angular/http": "~2.4.0", "@angular/platform-browser": "~2.4.0", "@angular/platform-browser-dynamic": "~2.4.0", "@angular/platform-server": "~2.4.0", "@angular/router": "~3.4.1", "angular-in-memory-web-api": "~0.1.16", "core-js": "^2.4.1", "reflect-metadata": "~0.1.8", "rxjs": "~5.2.0", "systemjs": "0.19.41", "zone.js": "^0.7.2", "express": "^4.14.0", "http": "0.0.0", "https": "^1.0.0" }, "devDependencies": { "@types/core-js": "^0.9.35", "@types/jasmine": "^2.5.36", "@types/karma": "^0.13.33", "@types/node": "^6.0.45", "autoprefixer": "^6.5.1", "babel-cli": "^6.14.0", "babel-preset-es2015": "^6.14.0", "canonical-path": "0.0.2", "chalk": "^1.1.3", "chokidar": "^1.6.0", "clim": "^1.1.1", "codelyzer": "1.0.0-beta.3", "concurrently": "^3.0.0", "core-js": "^2.4.1", "cssnano": "^3.8.0", "google-closure-compiler": "^20160911.0.0", "google-closure-compiler-js": "^20160916.0.0", "htmlprocessor": "^0.2.4", "http-server": "^0.9.0", "jasmine-core": "^2.3.4", "jasmine-spec-reporter": "^2.4.0", "karma": "1.3.0", "karma-chrome-launcher": "^2.0.0", "karma-coverage": "^1.0.0", "karma-htmlfile-reporter": "^0.3.4", "karma-jasmine": "^1.0.2", "karma-jasmine-html-reporter": "^0.2.2", "karma-mocha-reporter": "^2.0.3", "karma-phantomjs-launcher": "^1.0.0", "karma-remap-istanbul": "0.2.1", "karma-verbose-reporter": "0.0.3", "live-server": "^1.1.0", "livereload": "^0.6.0", "node-sass": "^3.10.1", "nodemon": "^1.10.2", "npm-run-all": "^3.0.0", "onchange": "^3.0.2", "phantomjs-prebuilt": "^2.1.13", "postcss": "^5.2.5", "postcss-cli": "^2.6.0", "protractor": "^4.0.10", "remap-istanbul": "^0.7.0", "replace-in-file": "^2.0.1", "rimraf": "^2.5.1", "rollup": "^0.41.4", "rollup-plugin-alias": "^1.2.0", "rollup-plugin-angular": "=0.4.2", "rollup-plugin-cleanup": "^1.0.0", "rollup-plugin-commonjs": "^7.0.0", "rollup-plugin-includepaths": "^0.2.1", "rollup-plugin-node-resolve": "^2.0.0", "rollup-plugin-replace": "^1.1.1", "rollup-plugin-typescript": "^0.8.1", "rollup-plugin-uglify": "^1.0.1", "shelljs": "^0.7.5", "traceur": "0.0.111", "ts-helpers": "^1.1.2", "tslint": "^3.15.1", "typescript": "^2.0.3", "watchify": "^3.7.0" }

0 投票
1 回答
223 浏览

angular - Angular AOT 编译错误:内部状态:摘要中的静态符号不能有成员

我们正在尝试为我们的 Angular 2 项目执行提前 (aot) 编译,但我们遇到了错误:

错误:内部状态:摘要中的静态符号不能有成员!{"filePath":"C:/Users/bhavy/Documents/projects/kairos/projects/KairosUI/node_modules/daypilot-pro-angular/daypilot-angular.min.d.ts","name":"DayPilot", “成员”:[“Angular”,“调度程序”]}


错误:内部状态:摘要中的静态符号不能有成员!{"filePath":"C:/Users/bhavy/Documents/projects/kairos/projects/KairosUI/node_modules/daypilot-pro-angular/daypilot-angular.min.d.ts","name":"DayPilot", "members":["Angular","Scheduler"]} 在 AotSummaryResolver._assertNoMembers (C:\Users\bhavy\Documents\projects\kairos\projects\kairosUI\node_modules\@angular\compiler\bundles\compiler.umd.js :26300:23) 在 AotSummaryResolver.resolveSummary (C:\Users\bhavy\Documents\projects\kairos\projects\kairosUI\node_modules\@angular\compiler\bundles\compiler.umd.js:26308:18) 在 CompileMetadataResolver._loadSummary (C:\Users\bhavy\Documents\projects\kairos\projects\kairosUI\node_modules\@angular\compiler\bundles\compiler.umd.js:18032:

这个错误是什么意思 ?我们在这里指的是什么静态符号?


除非我们知道错误实际上是什么,否则我们无法尝试修复它。
在这方面的任何帮助/建议将不胜感激。

PS:我们试图在 angular github 问题跟踪器上提出问题,但被告知 stackoverflow 可能是提出此类支持问题的更好地方。

0 投票
0 回答
600 浏览

angular - 如何调试从 AOT 编译、汇总的 Angular 应用程序生成的 build.js

我有 angular 2 应用程序,它在 JIT 编译时运行良好。现在对于 Prod,我正在使用 AOT 编译和汇总创建单个捆绑文件。当我运行应用程序时,我在 Chrome 开发工具的控制台中收到此错误


drainMicroTaskQueue@zone.js:613

TSconfig-aot.json

Rollup.config.js

我已经生成了源地图。我怎样才能弄清楚问题是什么?

0 投票
0 回答
613 浏览

angular - angular2 AoT 编译中生成的文件

我正在使用 angular-cli 构建应用程序。使用该--aot=false选项构建运行良好。

我收到错误--aot=true,为了调查这些我想查看编译生成的文件(特别是 ngFactory 文件)。但是我似乎无法将文件保存到磁盘,所以我可以查看它们......

这是我的tsconfig.json

使用--target=production(implies --aot=true) 编译时,出现错误:

我想要的是打开composition.component.ngfactory.ts文件来调试它

但是,当 ng 构建完成时,该文件不存在(就像它已被“清理”一样)。也没有aot目录。如果我创建aot目录,它仍然是空的。

任何帮助表示赞赏!

编辑:即使使用(angular-cli 1.0.0)创建一个新项目,ng new我似乎也无法将aot编译中的中间文件写入磁盘。

0 投票
1 回答
653 浏览

angular - 在 angular-cli 中使用我的模块:静态解析符号值时遇到错误

我知道我不是唯一一个对这个词有疑问的人。但是有角度的家伙对这个术语有大约 23 个问题。我尝试了很多不同的东西。一个很重要:我尝试了与他们相同的方式@angular/http(导出裸工厂函数)。

事实是:它有效 - 代码不正确。但是当我尝试导入模块时,我得到了这个错误:

当我在此错误后运行 ng serve 并触摸文件时,它会重新编译而不会出现错误。但是无论我尝试构建什么(ng build -e prod --aot false),我都会收到此错误并且构建停止。当我"strictMetadataEmit": true在 tsconfig.json 中设置时,我也会收到此错误。我有一个TranslatorModule.metadata.json- 这不会是错误。

为什么它不起作用?此错误消息的详细含义是什么?什么是符号值,为什么它必须是静态的?如何让它工作?

对于测试,您只需安装 angular2-translator@2.0.0-alpha3。你可以在 github 上找到代码:https ://github.com/tflori/angular2-translator/tree/2.0

我只是尝试使用这些导出的函数和不同的提供程序,如下所示。

结果只是另一个错误消息(现在符号 NgModule 的“emakeDecorator”有问题:ERROR in Error encountered resolving symbol values statically. Calling function 'ɵmakeDecorator', function calls are not supported. Consider replacing the function or lambda with a reference to an exported function, resolving symbol NgModule

0 投票
2 回答
1624 浏览

javascript - 用作 Angular 4 AoT 的 useValue 提供程序时,窗口未定义

当 Angular 4.0.2 应用程序被提前编译时,提供者被定义为useValue

并像使用

它编译正常,但在window注入undefined时导致

引导时引发错误:

TypeError:无法读取未定义的属性“导航器”

仔细查看自动生成的 app.module.ngfactory.js 似乎确实是undefined

当使用相同的服务时useFactory,一切正常:

window在这里使用作为提供者到底有什么问题useValue?这是一个已知的陷阱吗?此限制是否适用于所有全局变量或所有useValue提供程序?

0 投票
2 回答
2731 浏览

angular - Angular 4 AOT 编译器不支持 mixins

有时我使用 Mixins 来注入重复的函数,例如slugUrl().

但它不适用于 Angular 4 编译器。

如果我编译这段代码,编译器会抛出:

“FooComponent”类型上不存在属性“ngClassControl”。

有任何想法吗?

编辑:因为有人问,这里是另一个使用 TS mixins 的例子,它重现了这个问题,这次是在模板级别。

成分:

混合:

错误:

错误中的错误:模板解析错误:无法绑定到“标签”,因为它不是“测试”的已知属性。("][标签]="标签">")

0 投票
2 回答
1449 浏览

angular - Angular 编译器抛出内部错误:未知标识符 {}

我正在像这样构建我的 angular2 服务

使用 ngc 和 angular 2.xx 可以很好地工作和编译但是在升级到 angular 4.xx 后,在组件“提供者”数组中使用时,ServiceProvider 不能再进行 ngc 编译。(有趣的是,当提供程序注册在 ngModule 中而不是在组件中时,整个事情都有效。)

我在控制台上得到以下信息:

events.js:160 抛出 er;// 未处理的“错误”事件 ^ 错误:命令失败:npm run ngc 错误:内部错误:未知标识符 {}

有什么想法吗?我可能会将我的服务转换为 @Injectable() 并且不使用该接口,但这似乎与使用服务接口的整个想法背道而驰:(

仅供参考:我正在使用 TypeScript 2.2.2

非常感谢你的帮助!

0 投票
1 回答
115 浏览

angular - 角度库中的 AOT 编译错误

我为 Angular 2 制作了一个库,但我陷入了这个问题

我收到此错误:

而且我不明白我的代码有什么问题。

你可以在这里查看我在 Github 上的代码

如果有人在这个问题上有更多经验,请告诉我。我会感谢你的帮助。

谢谢