角度库构建因最新依赖项而失败

Posted

技术标签:

【中文标题】角度库构建因最新依赖项而失败【英文标题】:angular library build fails with latest dependencies 【发布时间】:2017-08-31 11:15:47 【问题描述】:

自从我升级到最新的依赖项(删除旧的 node_modules 并重新运行 npm install;npm build)我的角度库不再构建。我看到如下错误:

/home/kmoyse/akgsworkspace/kwp-angular2/node_modules/@angular/core/src/facade/lang.d.ts:12:17 的错误:“地图”仅指一种类型,但正在使用作为这里的值。 /home/kmoyse/akgsworkspace/kwp-angular2/node_modules/@angular/core/src/facade/lang.d.ts:13:17 处的错误:“Set”仅指一种类型,但被用作值这里。 /home/kmoyse/akgsworkspace/kwp-angular2/node_modules/rxjs/Observable.d.ts:68:60 处的错误:“Promise”仅指一种类型,但在此处用作值。 /home/kmoyse/akgsworkspace/kwp-angular2/node_modules/rxjs/operator/toPromise.d.ts:3:79 处的错误:“Promise”仅指一种类型,但在此处用作值。 /home/kmoyse/akgsworkspace/kwp-angular2/src/configuration/configuration.service.ts:28:16 处的错误:“Promise”仅指一种类型,但在此处用作值。 /home/kmoyse/akgsworkspace/kwp-angular2/src/compiled/node_modules/@angular/common/common.ngfactory.ts:11:44 错误:“typeof”/home/kmoyse 类型上不存在属性“ɵNgModuleInjector” /akgsworkspace/kwp-angular2/node_modules/@angular/core/index"'。 /home/kmoyse/akgsworkspace/kwp-angular2/src/compiled/node_modules/@angular/common/common.ngfactory.ts:13:30 错误:命名空间'"/home/kmoyse/akgsworkspace/kwp-angular2/node_modules/ @angular/common/index"' 没有导出成员 'NgLocaleLocalization'。

我的库可以从以下位置克隆: git clone https://github.com/akigrafsoft/kwp-angular2

然后简单地运行: npm 安装 npm 运行构建

重现问题。

请注意,这曾经可以工作...

【问题讨论】:

你是如何更新依赖的 您好,我删除了node_modules目录并再次调用了npm install。我正在使用节点 6.5.0 和 npm 4.4.4。 【参考方案1】:

Helo,我通过从 src 中删除编译目录并更新 tsconfig.json 解决了问题:

    "compilerOptions": 
        "target": "es5",
        "module": "es2015",
        "skipLibCheck": true,
        "typeRoots": [
            "./node_modules/@types"
        ],
        "lib": [
            "dom",
            "es2015"
        ]
    ,

和:

"angularCompilerOptions": 
    "genDir": "../compiled"

【讨论】:

以上是关于角度库构建因最新依赖项而失败的主要内容,如果未能解决你的问题,请参考以下文章

角度动画因不透明度​​设置而失败(以及更多错误)

离子包构建失败 - 离子角度工具包

由于找不到依赖项而导致编译Scala程序失败

手动TypeScript角度依赖注入在ChangeDetectorRef上失败

构建角度库时包含资产

Maven:如何将本地 lib 目录用于依赖项而不是 Maven 存储库