从零开始发布一个Vue3的npm包

1,592 阅读2分钟

从零开始发布一个Vue3+Vite的npm包

其它延伸:verdaccio搭建私有npm仓库

npm账号配置

注册新账号

注册地址: www.npmjs.com/signup

登录账号

在命令行输入: npm login,此时会提醒你打开浏览器进行登录,然后邮件接收验证码,输入登录

后续发布会用到的命令行

npm version patch package.json 里的版本号变更,如1.0.0变成1.0.1

npm publish 发布推送

开发vue3+vite的组件

创建一个Vue应用

用脚手架创建一个vue3项目,官方创建有两种方式:

  • vue-cli创建(基于webpack)
  • create-vue创建(基于vite)

这里选择第二种方式创建,目前最新的Vue官方的项目脚手架工具;跟着官方文档走即可:创建一个 Vue 应用

*注意:方式二需要、已安装 16.0 或更高版本的 Node.js

这里采用 nvm 安装切换成高版本的node:

nvm install v18.16.0

nvm use v18.16.0

开发组件

这里开发的是Facebook登录、Google登录组件,组件功能开发不详述;这里主要是记录NPM配置发布的相关内容

在根目录src下新建组件目录:packages,这是最终需要打包发布到 npm 的目录

packages  |- FacebookSignin
            |- index.js      // FB登录组件入口
            |- index.vue     // FB登录组件逻辑

          |- GoogleSignin
            |- index.js     // 谷歌登录组件入口
            |- index.vue    // 谷歌登录组件逻辑
          |- index.js       // 组件主入口

详细源码点击这查看

打包配置

vite.config.js配置

build: {
  lib: {
    entry: path.resolve(__dirname, 'src/packages/index.js'),  // 打包入口文件
    name: 'vue3-google-facebook-signin',    // 打包的名字
    fileName: (format) => `vue3-google-facebook-signin.${format}.js`  // 打包生成的文件名
  },
  rollupOptions: {
    // 不需要打包进库的依赖,忽略vue
    external: ['vue'],
    output: {
      // UMD构建模式下为这些外部的依赖提供一个全局变量
      globals: {
        vue: 'Vue'
      }
    }
  }
}

package.json 修改

根目录的package.json新增以下配置

  "files": [
    "dist"
  ],
  "main": "./dist/vue3-google-facebook-signin.umd.js",
  "module": "./dist/vue3-google-facebook-signin.es.js",
  "exports": {
    ".": {
      "import": "./dist/vue3-google-facebook-signin.es.js",
      "require": "./dist/vue3-google-facebook-signin.umd.js"
    }
  },

配置好之后,开发调试无误、开始打包,执行:npm run build,此时打包生成的 dist 目录,就是我们要发布到 npm 的包。

发布 npm

发布前新增配置说明文件

进入 dist 目录,生成并配置 package.json 文件,操作如下:

命令行执行: npm init --yes 生成 package.json 文件,修改里面的项目信息即可

同时,在 dist 目录新建 README.md 文件并编辑内容,到时发布后在npm的说明展示

官方操作: Creating a package.json file

发布

进入 dist 目录,命令行执行登录:

npm login, 此时会提醒你打开浏览器进行登录,然后邮件收到验证码输入登录

登录成功,可以执行发布命令:npm publish

如果是更新后重新发布,需要先执行
npm version patch, package.json 里的版本号变更,如1.0.0变成1.0.1
npm publish 发布推送

发布成功,可以去npm的组件页看看,npm install -S vue3-google-facebook-signin下载回来试试使用吧

参考

Vue.js快速上手

npm官方文档