2017-10-11 103 views
0

我已经使用优秀的aspnetboilerplate.com创建了一个项目,但我试图将其与我现有的Angular项目一起使用。将aspnetboilerplate.com添加到现有的角度项目

我想设置身份验证功能(用户登录等)。

我已将以下软件包添加到我的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

你运行 “的运行故宫建”? –

回答

0

我必须创建一个自定义的打字文件,即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/*" ] 
}