问题标签 [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.
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 被设计为打字稿编译器的“替代品”)。
任何提示我可能做错了什么?
谢谢你的帮助。
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"
}
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 可能是提出此类支持问题的更好地方。
angular - 如何调试从 AOT 编译、汇总的 Angular 应用程序生成的 build.js
我有 angular 2 应用程序,它在 JIT 编译时运行良好。现在对于 Prod,我正在使用 AOT 编译和汇总创建单个捆绑文件。当我运行应用程序时,我在 Chrome 开发工具的控制台中收到此错误
drainMicroTaskQueue@zone.js:613
TSconfig-aot.json
Rollup.config.js
我已经生成了源地图。我怎样才能弄清楚问题是什么?
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编译中的中间文件写入磁盘。
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
javascript - 用作 Angular 4 AoT 的 useValue 提供程序时,窗口未定义
当 Angular 4.0.2 应用程序被提前编译时,提供者被定义为useValue
并像使用
它编译正常,但在window
注入undefined
时导致
引导时引发错误:
TypeError:无法读取未定义的属性“导航器”
仔细查看自动生成的 app.module.ngfactory.js 似乎确实是undefined
:
当使用相同的服务时useFactory
,一切正常:
window
在这里使用作为提供者到底有什么问题useValue
?这是一个已知的陷阱吗?此限制是否适用于所有全局变量或所有useValue
提供程序?
angular - Angular 4 AOT 编译器不支持 mixins
有时我使用 Mixins 来注入重复的函数,例如slugUrl()
.
但它不适用于 Angular 4 编译器。
如果我编译这段代码,编译器会抛出:
“FooComponent”类型上不存在属性“ngClassControl”。
有任何想法吗?
编辑:因为有人问,这里是另一个使用 TS mixins 的例子,它重现了这个问题,这次是在模板级别。
成分:
混合:
错误:
错误中的错误:模板解析错误:无法绑定到“标签”,因为它不是“测试”的已知属性。("][标签]="标签">")
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
非常感谢你的帮助!