组件封装:TS + Vue:封装可发布组件
本篇内容:编写声明文件、范围包(Scopes)、发布到 npm
。
声明文件
由于构建之后的文件是一个 js
文件,所以要在 ts 项目中引用就需要一个声明文件。
package.json
为一个库添加声明文件时,需要用到 package.json
中的一个字段 -- types
,该字段可以指定声明文件的入口路径:
// package.json
{
// ...
"types": "./types/employee-query.d.ts"
}
employee-query.d.ts
为 UMD
类库编写声明文件,详见 如何在 TypeScript 中引入外部类库?【具体内容定位:如何编写声明文件?/ 声明文件 / UMD
类库】
import Vue from "vue";
declare class EmployeeQuery extends Vue {
// 添加成员
name: string;
selected: number;
department: { department: string; departmentId: number }[];
query(): void;
}
export as namespace EmployeeQuery; // umd 库声明,这条语句必不可少。
export = EmployeeQuery;
发布到 NPM
登录到 NPM
$ npm login
按步骤输入账号密码邮箱
npm notice Log in on https://registry.npmjs.org/
Username:
Password:
Email: (this IS public)
Logged in as XXXX on https://registry.npmjs.org/.
使用范围包发布(Scopes)
为了解决 “因为包名已被使用,我怎么也想不出包名” 的难题,决定使用范围包。
范围包就是命名空间,如果包名以 @
开始,就是一个范围包,比如
@scope/project-name
每个 npm 用户都有属于自己的范围,范围名是用户名。
@username/project-name
改造包名
// package.json
{
"name": "@username/project-name"
}
或者在 npm init
时,添加
$ npm init --scope=username
发布
默认情况下,范围包是私有的。要发布私有模块,是需要交钱滴;但共有模块是 free 的 ?
npm publish --access=public
发布成功后,可以在 www.npmjs.com/ 上管理自己的 packages
。
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 提示下载完但解压或打开不了?
- 找不到素材资源介绍文章里的示例图片?
- 模板不会安装或需要功能定制以及二次开发?
发表评论
还没有评论,快来抢沙发吧!