基于vue脚手架构建库并发布到npm

构建库的常见方法有两种:一种是本身手动构建webpack库打包,设置output为 library; 另外一种是基于vue-cli3输出库资源包。咱们采用第二种vue脚手架的方式构建库。html

新增编译库命令
// package.json 
"scripts": {
    // ...
    "lib": "vue-cli-service build --target lib --name Step --dest dist packages/index.js"
}

// packages/index.js  默认打包Step
import Step from '../steps/src/step';
Step.install = function(Vue) {
    Vue.component(Step.name, Step);
};
export default Step;
  • --name: 库名称。
  • --target: 构建目标,默认为应用模式。这里修改成 lib 启用库模式。
  • --dest: 输出目录,默认 dist。
  • [entry]: 最后一个参数为入口文件,默认为 src/App.vue。

更多详细配置查看 ☛ vue脚手架官网vue

若是该库依赖于其余库,请在vue.config.js 配置 externals
// vue.config.js
module.exports = {
    configureWebpack:{
      externals: {
         vue: 'Vue',
         'vue-router':'VueRouter',
         axios: 'axios'
      }
    }
}

执行 npm run lib 就能够发现咱们的库被打包到了 根目录的dist文件夹下。webpack

添加 .npmignore 文件(可选)

和 .gitignore 的语法同样,具体须要提交什么文件,看各自的实际状况ios

# 忽略目录
examples/
packages/
public/

# 忽略指定文件
vue.config.js
babel.config.js
*.map

配置npm库信息

配置package.json文件,以发布库文件。git

{
  "name": "gis",
  "version": "1.2.5",
  "description": "基于 Vue 的库文件",
  "main": "dist/gis.umd.min.js",
  "keyword": "vue gis",
  "private": false,
   "files": ["dist"],
  "license": "MIT"
 }
  • name: 包名,该名字是惟一的。可在 npm 官网搜索名字,若是存在则需换个名字。
  • version: 版本号,每次发布至 npm 须要修改版本号,不能和历史版本号相同。
  • description: 描述。
  • main: 入口文件,该字段需指向咱们最终编译后的包文件。
  • keyword:关键字,以空格分离但愿用户最终搜索的词。
  • author:做者
  • files: 要上传的文件
  • private:是否私有,须要修改成 false 才能发布到 npm
  • license: 开源协议
  • dependencies: 依赖库
注意每次发布新的库,须要更改版本号,规则以下:
"version": "1.2.5" 主版本号为 1,次版本号 2,修订号 5
  • 主版本号(Major):当你作了不兼容的API修改
  • 次版本号(Minor):当你作了向下兼容的功能性新增
  • 修订号(Patch):当你作了向下兼容的问题修正

登陆npm

首先设置登陆的npm镜像地址web

npm config set registry http://168.20.20.57.4873

而后在终端执行登陆命令,输入用户名、密码、邮箱便可登陆vue-router

npm login

接着发布库资源到npmvue-cli

npm publish

最后发布成功可到官网查看对应的包并下载npm

npm install package_name
相关文章
相关标签/搜索