问题标签 [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 - 角度编译器 cli 不工作?
我正在尝试使用Angular 模板编译器来调查它,我知道它处于早期阶段,但 RC5 的文档已经提到它。我创建了一个小的“hello, world”项目,我可以运行ngc
,但它从不生成.ngFactory.ts
文件,我只看到一个.metadata.json
文件。
您可以通过克隆angular 2 quickstart来查看它。运行$(npm bin)/tsc
正常,并将'app'目录中的打字稿编译为带有地图文件的javascript。
接下来我按照说明安装了节点模块(升级打字稿):
现在运行$(npm bin)/tsc
仍然有效并产生.js
和.js.map
文件。我删除这些文件并运行$(npm bin)/ngc
,它会生成.js
and.js.map
文件以及两个新文件:
看起来这些文件基本上包含来自装饰器的元数据:
但ngc
不会向控制台输出任何输出,而且我看不到任何ngFactory
应该存在的文件。最初 typescript@next 给了我 2.1.0-dev.20160813,包说未满足的对等依赖期望 1.9.0 所以我安装了 1.9.0-dev.20160627-1.0 但我得到了相同的结果。我也试过$(npm bin)/ngc -p .
哪个做同样的事情并$(npm bin)/ngc -p app
给出一堆错误,因为它找不到 core-js 类型(Promise、Set、Map 等)。
angular - 如何在 Angular cli webpack 中使用提前编译器
有没有办法将 AOT 与 angular cli 一起使用?
我已经安装了模块(@angular/compiler @angular/compiler-cli),当我输入 ngc -p scr 时,它会创建 ngFactory.ts 文件并将其编译为 dist/tsc-out(tsconfig 中的 angular cli 默认值)
不知道如何从这里开始:)
干杯
韩
angular - Angular 2 编译器-cli 和 less 或 sass
我正在使用带有 angular 2 的 webpack 并让 sass 使用它。我的下一步是让 AOT 工作。我现在卡住了,因为 ngc 在访问我的 scss 文件时失败,因为它找不到导入。
消息是“未找到资源文件...”并引用导入语句。编译器可能首先需要处理 scss 文件是有道理的,但这需要首先构建应用程序,并且需要创建 ngFactories 才能成功构建。
angularjs - Angular 2:如何使用 Ahead of Time Compilation 实现延迟路由?
我已经使用 ngc 编译器成功创建了 .ngfactory 文件,并且还使用“platformBrowser().bootstrapModuleFactory(AppModuleNgFactory)”更新了我的 main.ts。
应用程序.routes.ts
现在,当我使用“ng build -prod && ng serve -prod”为我的应用程序提供服务时,它成功托管。但是,当我在浏览器上打开它时,我的控制台向我显示此错误“异常:未捕获(承诺中):错误:找不到模块 'app/starter/starter.module.ngfactory'。”
当我检查我的目录时,文件“确实”存在但找不到它。有没有人面临这个问题?如果是,那么如何解决呢?谢谢。
我正在使用 Angular-cli beta 14。
javascript - 角度指令编译器触发 ng-click 两次
我在我的模板中使用手风琴指令,在手风琴内部我正在添加attr
ng-click
一个元素。当我单击该元素时,它会触发两次。
小提琴:http: //jsfiddle.net/Lvc0u55v/10071/
代码 :
小提琴:http: //jsfiddle.net/Lvc0u55v/10071/
angular - Angular 2 Ahead-of-Time 编译器是否支持 SASS 样式表?
我想再次尝试使用Angular 2
Ahead-of-Time 编译。
这将需要我进行重大重构,因为我当前的设置使用需要更改的自定义构建过程。
在开始之前,我需要知道:如果我链接到元数据.scss
中的外部文件,styleUrls
AoT 编译器会工作吗?
还是应该先将所有样式转换.css
为 CSS 样式表并链接到 CSS 样式表?
自述文件没有讨论这个。
angular - Ionic 2:ngc 编译失败(元数据发出需要将 sourceFiles 传递给 WriteFileCallback)
我正在尝试使用带有 typescript@next 的 ngc 编译我的 ionic 2 rc 应用程序:
我无法更改我的打字稿版本(@next),因为我需要支持异步/等待。有什么方法可以在不安装 typescript@1.9.0 的情况下修复此错误,如错误消息所示?
我的 tsconfig 看起来像这样:
angular - ngc 在错误的目录中查找
我已@angular/compiler-cli
全局安装并将以下tsconfig-aot.json添加到我的客户端目录:
按照角度文档中的建议。然后ngc -p tsconfig-aot.json
我在我的客户端目录中运行,但收到以下错误:
错误:编译失败。找不到资源文件:C:/Users/George/Source/Repos/docs/client/components/home/client/components/home/home.html
因为该资源不存在.. 我的 home.html 位于C:/Users/George/Source/Repos/docs/client/components/home/home.html
, tsc 工作正常,我一直在使用 JIT 编译并且有一个工作应用程序,那么 AOT 在错误的位置查找我的文件是什么?
angular - ngfactory 文件本身是否必须在 Angular 2 AOT 编译中编译?
每当我使用 编译 Angular 2 应用程序时ngc
,它都会为每个组件创建.ngfactory.ts
文件,然后将所有打字稿编译为 javascript。
但是,当我第一次运行“ngc”时,它会创建ngfactory
文件,但只会将其他文件编译为 javascript。这意味着不会生成已编译ngfactory
的 javascript 文件。
在第二次运行时,它ngfactory
也会编译文件(可能是因为它们是在与源代码相同的文件夹中生成的)。
我的问题是:ngfactories 本身是否应该被编译?它会以任何方式影响应用程序吗?
angular - 使用 AoT 编译时,ViewChild 找不到并捆绑更大
使用 AoT 找不到 ViewChild
- 在获得3th party lib support AoT后,我成功编译,编译时
ngc
没有错误! - 我将此第 3 方库注入到我的项目中,因此我的项目使用 CLI 使用
--aot
标志进行编译,并且在编译期间没有错误,但是当在导航器上打开应用程序时,我得到:
ReferenceError: nameColumnHeader 未定义
- 这
nameColumnHeader
是一个ViewChild()
装饰器:
@ViewChild('nameColumnHeader') nameColumnHeader: TemplateRef<any>;
当然我有<template #nameColumnHeader...>
里面的HTML。删除此 ViewChild 时,另一个让我遇到同样的问题 #end of material2/sidenav 组件...
我不知道什么是问题,顺便说一句,为什么当我的项目ng serve --prod --aot时 cli 不告诉我有什么问题!
使用 AoT 将 main.js 捆绑得更大
我删除了所有ViewChild()
重新编译,--aot
一切正常,页面显示正确,但是:
当我使用main.js 的大小进行编译时ng build --prod
为1836 Ko,而当使用 AoT 编译时,ng build --prod --aot
main.js 的大小为:1860Ko
如果有用
更新:
使用 ViewChild 时需要使用分号!!!奇怪的是,在没有 AOT 的情况下编译时我们可以编写不带分号的 ViewChild,但使用 AoT 你需要分号