简单的实现一个npm包的创建、发布和更新

632 阅读2分钟

创建一个组件项目

新建一个vue项目作为组件项目

vue create 项目名称

这里我们就用默认的vue2.0项目创建就行。

创建.png 创建完成如果没有package-lock.json文件就用npm的方式重新下载下node包

调整项目目录

-- examples // 原 src 目录,改成 examples 用作示例展示
-- packages // 新增 packages 用于编写存放组件 创建.png

vue.config.js中添加配置

module.exports = {
  // 修改 src 为 examples
  pages: {
    index: {
      entry: "examples/main.js",
      template: "public/index.html",
      filename: "index.html"
    }
  }
}

如果不去做这一步的话我们的组件项目就会启动不了。

packages中书写第一个组件

第一个组件.png

//packages /table/index.js  添加以下代码
// 导入组件,组件必须声明 name
import formTable from "./index.vue";
// 为组件提供 install 安装方法,供按需引入
formTable.install = function (Vue) {
  Vue.component(formTable.name, formTable);
};
// 默认导出组件
export default formTable;

packages /table/index.vue 添加以下代码

<template>
  <div>你好你好</div>
</template>
<script>
export default {
  name:'formTable' //这里的name是必须要填写的  否则会报错
}
</script>

导出所有组件

packages下新建 index.js 并添加

// 导入组件
import formTable from './table/index';

// 存储组件列表
const components = [formTable];
// 定义 install 方法,接收 Vue 作为参数。如果使用 use 注册插件,则所有的组件都将被注册
const install = function (Vue) {
	// 遍历注册全局组件
	components.forEach((component) => {
		Vue.component(component.name, component);
	});
};

// 判断是否是直接引入文件
if (typeof window !== 'undefined' && window.Vue) {
	install(window.Vue);
}

export default {
	install,// 导出的对象必须具有 install,才能被 Vue.use() 方法安装
	// 以下是具体的组件列表
	formTable,
};

组件项目引入查看效果

//formDemo 名称不做要求 也不是要与组件名称统一
import formDemo from '../packages/index'; 
Vue.use(formDemo);
<form-table> </form-table> 

发布npm包准备

首先注册npm账户

更改配置文件

"name": "form-demoxy", //推送npm的包名
"version": "0.0.1",  //版本号
"private": false, ///是否私有
"keyword": "测试项目", //关键字  作为npm搜索使用
"description": "测试项目",  //描述
"author": "xycrest",  //作者
"main": "lib/form-demo.umd.min.js",

更改打包编译方式

"scripts": {
    "serve": "vue-cli-service serve",
    "lib": "vue-cli-service build --target lib --name form-demo --dest lib packages/index.js"
},

打包编译

npm run lib

发布npm

登录npm

有两种方式

npm adduser //

npm login //

然后会让我们输入用户名、密码和邮箱,会发送到邮箱一份验证密码,输入验证密码。 登录成功后就可以发布了 这里我们需要改成npm源来进行操作

npm config set registry https://registry.npmjs.org/

发布

npm publish

发布时要注意npm官网有没有重名的包,成功会发送邮件提示我们

npm包的更新

我们在修改组件内容后,去进行发布时,注意版本号是不能相同的,所以我们要提升版本号,然后去发布。 我们在提升版本号时要注意因为 README.md 文件和 package.json 以及构建的文件需要在发布之前提交,不然就会报错。

npm version patch //会自动的给我们更改版本号

更新成功也会发送邮件