将aspnetboilerplate.com添加到现有的angular项目中

3
我使用了优秀的aspnetboilerplate.com创建了一个项目,但我正在尝试将其与我现有的Angular项目一起使用。
我正在尝试设置身份验证功能(用户登录等)。
我已经将以下包添加到我的package.json中:"abp-ng2-module" "abp-web-resources"。
我还将相关的TypeScript文件添加到了我的Angular应用程序中。
当我查看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次,不仅与我的本地TypeScript文件有关,而且还与我的包中的TypeScript文件有关。

ERROR in [at-loader] ./node_modules/abp-ng2-module/dist/src/features/feature-checker.service.d.ts:2:31 
TS2503: Cannot find namespace 'abp'.

看起来是与命名空间相关,但我不确定为什么安装的包甚至都不能工作?


你运行了 "npm run build" 吗? - Alper Ebicoglu
1个回答

7

我需要创建一个自定义的类型文件,即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/*" ]
}

我也在尝试做同样的事情 - 你的答案帮了我很多! - Sambo

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接