在Angular 6工作区中为类库安装NPM包的方法咨询
为Angular类库安装ngx-bootstrap的正确方式
你说得对,直接在根目录运行npm install ngx-bootstrap会把包安装到主应用的依赖里,而不是你的类库foo中。要给类库单独安装依赖,有两种简单的方法:
方法一:在根目录直接指定类库路径安装
不需要切换目录,直接在项目根目录执行这条命令:
npm install ngx-bootstrap --save --prefix projects/foo
--prefix projects/foo会告诉npm把包安装到类库的目录下,同时自动更新projects/foo/package.json中的dependencies字段(--save的作用),这样当其他用户安装你的类库时,npm会自动拉取ngx-bootstrap作为依赖。
方法二:进入类库目录安装
先切换到类库的目录,再执行安装命令:
cd projects/foo npm install ngx-bootstrap --save
这种方式更直观,安装完成后,ngx-bootstrap会出现在类库的node_modules里,同时更新类库自己的package.json。
安装后的配置步骤
安装完成后,你需要在类库的模块中导入DropdownButtonModule才能使用:
打开projects/foo/src/lib/foo.module.ts,修改成这样:
import { NgModule } from '@angular/core'; import { FooComponent } from './foo.component'; // 导入DropdownButtonModule import { DropdownButtonModule } from 'ngx-bootstrap/dropdown'; @NgModule({ declarations: [FooComponent], imports: [ // 导入模块,如果需要全局配置可以用forRoot() DropdownButtonModule.forRoot() ], exports: [FooComponent] }) export class FooModule { }
如果你的类库组件只是内部使用DropdownButton,这样就足够了;如果你的类库需要对外暴露ngx-bootstrap的相关组件/指令,还需要在projects/foo/src/public-api.ts中导出对应的模块,但一般类库内部使用的话不需要这一步。
另外要注意:不要使用ng add ngx-bootstrap,这个命令会修改根应用的配置文件(比如angular.json),而类库不需要这些全局配置,只需要在自己的模块中导入即可。
内容的提问来源于stack exchange,提问作者Neil Stevens
相关产品推荐
相关产品推荐

