最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • TS + Vue:如何将组件发布到 NPM ?

    正文概述 掘金(荷包蛋卷)   2021-05-20   604

    组件封装: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


    起源地下载网 » TS + Vue:如何将组件发布到 NPM ?

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元