我使用优秀的aspnetboilerplate.com创建了一个项目,但我正在尝试将其用于我现有的Angular项目。
我正在尝试设置身份验证功能(用户登录等)。
我已将以下软件包添加到我的package.json“abp-ng2-module”“abp-web-resources”。
我还将相关的打字稿文件添加到我的角度应用程序中。
当我从aspnetboilerplate.com查看自动生成的项目时,他们正在导入这样的模块:
import { PermissionCheckerService } from '@abp/auth/permission-checker.service';
然而,这对我不起作用,VSCode报告它无法找到模块,我可以像这样导入它:
import { PermissionCheckerService } from "abp-ng2-module/dist/src/auth/permission-checker.service";
当我尝试构建并运行我的应用程序时,我会收到以下错误
TS2304: Cannot find name 'abp'.
奇怪的是这个错误显示5或6次,不仅与我的本地打字稿文件有关,而且与我的包里面的打字稿文件有关。
ERROR in [at-loader] ./node_modules/abp-ng2-module/dist/src/features/feature-checker.service.d.ts:2:31
TS2503: Cannot find namespace 'abp'.
它似乎是命名空间的东西,但我不确定为什么安装的包甚至不起作用?
答案 0 :(得分:1)
我必须创建一个自定义输入文件,即typings.d.ts并添加以下行。
///<reference path="../node_modules/abp-webresources/Abp/Framework/scripts/abp.d.ts"/>
///<reference path="../node_modules/abp-web-resources/Abp/Framework/scripts/libs/abp.jquery.d.ts"/>
///<reference path="../node_modules/abp-web-resources/Abp/Framework/scripts/libs/abp.signalr.d.ts"/>
我还在tsconfig.json文件中添加了以下内容
"baseUrl": ".",
"paths": {
"@abp/*": [ "../node_modules/abp-ng2-module/src/*" ],
"@app/*": [ "./app/*" ],
"@shared/*": [ "./shared/*" ],
"@node_modules/*": [ "../node_modules/*" ]
}