发布这个npm包我找比较多的资料,我觉得比较麻烦,时间比较老等等问题。
所以就自己来搞搞吧,最先跟着他们弄,但是不断的尝试,开发,发现问题之后,其实很简单的一个工作而已。
编写module
发布npm的话,随便编写一个module都是可以的。我下面就编写开源项目ngx-cropper来演示开发一个自己的module来发布,供别人使用。
准备知识:
- npm 账号
- 会使用npm ,其他构建不在本次讨论范围之类。
- 当然会ng咯
发布命令:
npm publish -- 这条命令读取的是package.json中的信息。所以需要配置好name,version
npm unpublish module_name --force 强制删除发布的信息,但是在时间段内,并且没有被应用可以执行,否则是不能撤销。
原因是:发布了别的公司引用,你测试将会出问题。
注意:发布前需要登录的哟。
npm login
名字,密码,邮箱即可
发布之后可以在npm官网搜索自己发布的组件。
发布失败:
- 没有登录
- 这个名称被别人使用,提示没有权限对这个包操作,也就是你不是该名称包的所有者。换个名字就可以了。
- 版本相同,每一次发布都需要更改package.json中的版本号。
下面说说我这次开发的ngx-cropper组件
cropper是什么?
cropper官网,cropper是一个图片截图的Jquery插件,最后返回一个base64编码组件。
开发cropper的angular版本
因为cropepr的jQuery编写的,所以我们需要将它改造成ng的版本。
前提:
npm install --save-dev jquery --不用多说
npm install --save-dev cropper -- cropper核心组件
npm install --save-dev bootstrap -- bootstrap组件
npm install --save-dev font-awesome --图标组件
这几个是必须安装的,因为cropper是基于这些东西开发的。
简单描述:
在cropper使用的时候,除了属性配置信息之外,其余就是几个方法的调用,传递方法调用名称,属性json对象即可调用。
通过调用croper中的方法即可对cropper接管的图片进行处理。
编写的cropper组件我这里就不详细叙述,代码在github上有。ngx-cropper截图ng代码
使用
import {BrowserModule} from '@angular/platform-browser';
import {NgModule} from '@angular/core';
import {AppComponent} from './app.component';
import {CropperModule} from 'lnlr-cropper/index';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
CropperModule,
],
providers: [],
bootstrap: [AppComponent]
})
export class AppModule {}
页面直接使用即可,当然可以根据个人设置属性
<app-lnlr-cropper [aspectRatio]="NaN" [srcImage]=""></app-lnlr-cropper>
这样,cropepr的ng组件我们就编写完成,只需要进行发布即可。
发布成功会返回:
组件名称@版本号
其实就是package.json中的name,version
发布成功就去npm 官网看看吧。
我发布了文章之后,又要忍不住先给自己来一颗小红心。你们来么???
我必须每次都先给自己点一个小红心!自己安慰自己先。
个人github.com地址,ngx-cropepr项目源代码