问题标签 [angular-compiler]
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 - 如何使用 ngc 启动监视模式?
我想做同样的事情,就像我在过去的美好tsc
时光中所做的那样:只需调用 a tsc -w
,并且在文件更改的情况下,它将即时重新编译。
不幸的是,ngc
它甚至似乎对-w
标志没有任何反应,甚至它可能的命令行参数也完全没有记录。
但是,ng build
有一个--watch
标志,同时它也可以创建 AOT 构建。因此,观察模式ngc
可能是可能的。
但是怎么做?
angular - Angular AOT Compiler - TypeError: this.compiler.analyzeModulesAsync is not a function
I'm trying to follow the ahead of time (AOT) compiler instructions here:
https://angular.io/guide/aot-compiler
The project I'm working on has been developed using the quickstart seed, as described here:
https://angular.io/guide/setup
The project has been working fine without using the AOT compiler, but when I try to follow the instructions to get the AOT compiler working, I get the following error (this is on Windows 8):
My package.json file looks like this:
When I check what version of @angular/compiler I have installed, I get 4.2.2, which appears to be the most current version:
Viewing source on Github, I see that there is a function called analyzeModulesAsync in angular/packages/compiler/src/aot/compiler.ts:
https://github.com/angular/angular/blob/master/packages/compiler/src/aot/compiler.ts
However, when I do a grep on my node_modules folder for analyzeModulesAsync, I only see calls to that function. I don't see a definition for it. In fact, the class definition in the compiler.d.ts appears to have several differences from the compiler.ts file on Github.
I've tried "reinstalling" by deleting the entire node_modules folder and re-running npm install, and the error message is the same.
I do see a somewhat similar question here: Angular AOT failing at compilation (something with angular/compiler-cli), but I don't know enough about npm versioning to know what could be out of whack, or how to fix it.
Any ideas on whether I botched some instructions somewhere, or there is something deeper at work?
SOLUTION
The problem was with the mismatched versions of @angular/compiler-cli and @angular/platform-server in package.json. Once I changed those to "~4.0.0" to match the rest of the angular modules, deleted the node_modules folder and re-ran npm install
, the compiler worked.
My working theory is that, because I cloned the quickstart two weeks ago, and ran this command: npm install @angular/compiler-cli @angular/platform-server --save
from the tutorial yesterday, that's what lead to the version mismatch.
angular - *.ngsummary.json 的目的是什么
我刚刚了解AOT
等ngc
。运行后ngc
我看到很多*.ngsummary.json
(在src
文件夹中,在文件旁边*.ts
)。
它们是干什么用的?
angular - Angular - useFactory - 不支持错误函数调用。考虑将函数或 lambda 替换为对导出函数的引用
我使用 Angular AOT 编译器版本 4.1.3
我有一个组件库,它导出一个工厂方法,然后用于提供服务:
我成功地编译了库ngc
。
然后导入编译好的库,我LibServiceFactory
在网站的AppModule中使用:
我编译网站时ng build
出现以下错误:
错误(position 5:10 in the original .ts file)
指向工厂方法中的匿名函数:return (http: Http): LibService => {
作为附加信息,我创建和使用工厂方法的方式与官方文档中关于注入令牌的 Angular 建议相同。
我的错误是预期的行为吗?还是我的实现有问题?
angular - Angular2 编译器将模块“x”转换为“x/index”
我很难理解为什么@angular
编译器会更改我的模块名称:
指令.ts
tsconfig.aot.json
然后我@angular/compiler
使用cli
as运行ngc -p tsconfig.aot.json
。我得到这个结果没有任何意义。
指令.js
有谁知道为什么会发生这种情况,或者如何解决这个问题。这使得无法Rollup
解析这些模块。
角度编译器:v4.2.4
Angular 编译器-cli:v4.1.3
angular - Angular 编译器输出包含未定义 this 的脚本
我正在为 Angular 开发一个小型 npm 包,它基本上是一个指令,可以在您放置的元素上进行拖动/移动。我昨天确实设法发布了它(甚至认为这需要一段时间,因为这是我第一次将 angular 包发布到 npm)。我用来ngc
编译 Angular 的代码。用于捆绑的汇总和用于缩小的 unglify。
现在,我想修复我发现的几个错误。我修复了它们,运行了编译器,运行了汇总等。但是汇总一直向我显示@angular/core
未定义的内容,因此它将其视为外部依赖项,并且 - 我无法解决的问题 -this is undefined
在我的两个文件中(https: //github.com/rollup/rollup/wiki/Troubleshooting#this-is-undefined)。无论如何,模块已经构建,我能够发布并使用它。问题是,当我尝试ng build --prod --aot
使用包含该软件包的应用程序时,它会大喊:
我猜这是因为我上面写的警告。所以我试图修复它们,但没有成功。我至少能够通过添加到文件中来修复@angular/core
警告,但仍然存在。我还意识到我编译的文件与昨天的不同。exports: ['@angular/core']
rollup.config.js
this is undefined
在几次提交之前编译的文件等:
今天编译的文件:
看起来装饰器的创建方式不同,我真的不知道我是否更改了tsconfig.json
文件或任何其他配置文件中的任何内容。
我正在执行构建模块的步骤是:
node_modules/.bin/ngc -p tsconfig.json
node_modules/.bin/rollup -c
node_modules/.bin/uglify ... (that's a long one)
我的文件结构是:
...我正在将输出编译到dist/
应用程序根目录中的目录中。
包.json
tsconfig.json
rollup.config.js
如果有人阅读了所有内容并知道可能导致问题的原因,我将不胜感激。谢谢你。
angular - 如何告诉 Angular 不要编译模板的某些部分?
实际案例非常简单:我想为我的库提供文档,因为我想将代码示例与演示部分一起粘贴到那里。
所以我的问题是:如何使一部分可编译和可执行,而另一部分 - 只是一个文本(!带双大括号)。
例如:
angular - Angular 编译器如何处理多个同名的模板引用变量
我想开始为 Angular 做贡献,我有一个功能的想法,如果模板包含两个同名的模板变量,我希望模板编译器发出警告。我想我设法接近了负责的源文件:https ://github.com/angular/angular/blob/master/packages/compiler/src/view_compiler/view_compiler.ts但找不到位置,这是可以理解的. 这里有人可以指导我吗?