1。创建项目
# PROJECT_NAME:创建的项目名称 ng新PROJECT_NAME
2。创建第三方包(我们要构建的NPM包)
cd PROJECT_NAME # LIBRARY_NAME:创建的包的名称(如佐罗) #前缀:组件前缀(如nz-zorro的组件前都是新西兰) ng g图书馆LIBRARY_NAME——prefix前缀
上面命令执行后会在我们项目根目录生成<代码> 代码>项目目录,目录里就是刚才生成的第三方库,如下图:
3。构建自己的模块
编辑模块,实现我们需要的功能,我在改模块中加入了<代码> directive.ts 代码>和<代码> models.ts> 代码,如下图:
<代码> directive.ts> 代码只在模块内部使用,导入在当前<代码> module.ts 代码>里,如下:
从“@angular/platform-browser”进口{BrowserModule}; 从“@angular进口{NgModule}/核心”; 进口{NePreviewComponent}”。/ne-preview.component '; 进口{ViewerDirectiveModule}”。/ne-preview.directive '; @NgModule ({ 进口:[ BrowserModule, ViewerDirectiveModule #这里 ), 声明:[NePreviewComponent], 出口(NePreviewComponent): }) 出口类NePreviewModule {}
<代码> models.ts> 代码可能在外部使用,则需在<代码> public_api.ts> 代码导出,如下:
出口*’。/lib/ne-preview.service '; 出口*’。/lib/ne-preview.component '; 出口*’。/lib/ne-preview.module '; 出口*’。/lib/ne-preview.model ';#这个是新加,其他为自动生成
4。构建NPM包
打包前修改<代码> package.json> 代码中的项目信息,每次更新npm包需修改<代码> 代码,版本版本相同提交不上去,可以手动修改,也可命令修改,如下:
npm版本prepatch
更多操作
#版本号从1.2.3变成1.2.4-0,就是1.2.4版本的第一个预发布版本。 npm prepatch版本 #版本号从1.2.4-0变成1.3.0-0,就1.3.0是版本版本的第一个预发布版本。 npm preminor版本 #版本号从1.2.3变成2.0.0-0,就是2.0.0版本的第一个预发布版本。 npm premajor版本 #版本号从2.0.0-0变成2.0.0-1,就是使预发布版本号加一。 npm预映版
编译打包
#切到项目根目录 cd项目根目录路径 ng构建LIBRARY_NAME
编译成功,如下图:
在项目根目录会生成<代码> dist 代码>目录,如下:
到这里我们的NPM包就制作完成了,接下来就是发布到NPM仓库~
5。发布NPM包
这里得先登录NPM,
npm登录#详细操作自行百度
#切到目录 cd dist/LIBRARY_NAME #发布 npm发布
6。使用发布的NPM包
安装我们发布的包
# NPM_PACKAGE_NAME:项目/LIBRARY_NAME/包。json里面的名字,默认为:LIBRARY_NAME npm安装NPM_PACKAGE_NAME
在项目<代码> app.module.ts> 代码中引入我们创建的组件,如下:
从“@angular/platform-browser”进口{BrowserModule}; 从“@angular进口{NgModule}/核心”; 进口{AppComponent}”。/app.component '; 从“@angular进口{BrowserAnimationsModule}/platform-browser/动画”; 从@angular/形式的进口{FormsModule}; 从“@angular进口{HttpClientModule}/共同/http '; 从“@angular/普通”进口{registerLocaleData}; 从“进口zh型@angular/共同/地区/zh型”; 从“进口{EchoImagePreviewModule}。/echo-image-preview echo-image-preview.module”; 从“echo-image-preview”进口{EchoModuleModule}; 从“ne-img-preview”进口{NePreviewModule};# & lt;===这里 registerLocaleData (zh型); @NgModule ({ 声明:[ AppComponent ), 进口:[ BrowserModule, BrowserAnimationsModule, FormsModule, HttpClientModule, EchoImagePreviewModule, EchoModuleModule, NePreviewModule # & lt;===这里 ), 供应商:[], 引导(AppComponent): }) 出口类AppModule {}使用Angular-CLI构建NPM包的方法