与ERROR in Error encountered resolving symbol values statically
相关我目前正在为Angular构建TypeScript library(使用Angular 4)。启用AOT后,我收到此错误。
ERROR in Error遇到静态解析符号值。调用 函数'ɵmakeDecorator',不支持函数调用。考虑 使用对导出的引用替换函数或lambda 功能,解析符号NgModule in /home/.../node_modules/@angular/core/core.d.ts,解析符号 MyModule在/home/.../dist/contents.module.d.ts中,解析符号 MyModule位于/ home /.../ dist / contents.module.d.ts
根据Angular版本,我得到了另一个错误:
Angular项目的ERROR in Error遇到静态解析符号值。调用 函数'makeDecorator',不支持函数调用[...]
Enabling AOT阻止了这个:
MyModule中的错误不是NgModule
答案 0 :(得分:15)
强制你的Angular项目(或angular-cli)从你的主项目加载你的@angular
依赖项,而不是库的加载项。
tsconfig.json (请记住,angular-cli主tsconfig文件保留在src / tsconfig.app.json和tsconfig.spec.json中)
"compilerOptions": {
...
"paths": { "@angular/*": ["../node_modules/@angular/*"] }
}
经过几个小时的测试和挖掘GitHub问题回复......
我发现它就像不一样简单,在客户端的安装中有一个node_modules/
文件夹。 That是我正在处理的库(单击here直到提交它正常工作)。
因此,在开发设置中工作时可能会node_modules
,但只要将项目集成到另一个项目中,就会删除该文件夹。
在我的情况下,我在客户端文件夹中有一个node_modules文件夹的原因是由于之前的npm link
- > npm link my-package
。由于我在开发设置中使用node_modules
,因此它们也在链接文件夹中。
请注意,您的问题可能来自其他地方:
例如:小心lambdas,改用函数。
还有更多:
请务必检查full description of each of these - 信用额Isaac Mann。