【转】制作并发布第一个vue组件的npm包

最近在网上找到一个网页制作辅助工具-jQuery标尺参考线插件,觉得在现在的一个项目中能用的上,插件是基于JQuery的,但是现在的项目是用vue写的。So...,
就照葫芦画瓢改装成了Vue组件,总的来说算是一个用处较多的组件,于是乎,就想着把它上传到Npm上分享出来。
以前只用过别人的包,这一次自己上传一个乐呵乐呵...顺便记录发布一下过程。

项目地址

https://github.com/gorkys/vue...

初始化项目

这里用的是webpack-simple,可以理解为精简版的vue-cli

vue init webpack-simple vue-ruler-tool

安装好后再就是一顿常规操作

npm install
npm dev

项目结构

原结构中红框里是放的vue的logo图片,用不着的东西,所以这里就把改成了组件文件夹与组件文件

还需要在src下面新建一个index.js作为入口文件,代码:

// src/index.js
export { default } from ‘./components/vue-ruler-tool‘

修改package.json

{
  "name": "vue-ruler-tool",
  "description": "vue标尺辅助线",
  "version": "1.0.0",
  "author": "gorkys",
  "license": "MIT",  // 开源协议
  // 采用commonJs入口文件,如果不配置,我们在其他项目中就不用import XX from XX来引用了,只能以包名作为起点来指定相对的路径
  "main": "dist/index.js",
  "jsnext:main": "src/index.js", // 采用es6模块化入口
  "private": false, // 因为组件包是公用的,所以private为false
  "scripts": {
    "dev": "cross-env NODE_ENV=development webpack-dev-server --open --hot",
    "build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
  },
// 指定代码所在的仓库地址
  "repository": {
    "type": "git",
    "url": "https://github.com/mauricius/vue-draggable-resizable.git"
  },
// 提交bug的地址
  "bugs": {
    "url": "https://github.com/mauricius/vue-draggable-resizable/issues"
  },
  // 项目官网的url
  "homepage": "https://github.com/mauricius/vue-draggable-resizable",
  "keywords": [
    "vue",
    "component",
    "dragabble",
    "resizable"
  ], // 指定关键字
  "dependencies": {
    "vue": "^2.5.11"
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not ie <= 8"
  ],
  "devDependencies": {
   ...
  }
}

修改.gitignore

因为要用dist文件夹,所以在.gitignore文件中把dist/去掉。

修改webpack.config.js

// 原
module.exports = {
  entry: ‘./src/main.js‘,
  output: {
    path: path.resolve(__dirname, ‘./dist‘),
    publicPath: ‘/dist/‘,
    filename: ‘build.js‘
  }
...
}
// 新
module.exports = {
  entry: ‘./src/index.js‘,
  output: {
    path: path.resolve(__dirname, ‘./dist‘),
    publicPath: ‘/dist/‘,
    filename: ‘index.js‘,
    libraryTarget: ‘umd‘,
    umdNamedDefine: true
  }
...
}

测试插件

npm run build
npm pack

npm pack 之后,就会在当前目录下生成 一个vue-ruler-tool-1.0.0.tgz 的文件。
打开一个新的vue项目,将vue-ruler-tool-1.0.0.taz放到目录中,在当前路径下执行

npm install vue-ruler-tool-1.0.0.tgz

在新项目中引用组件就可以使用了

报错

在引用后报错无法解析,需要检查webpack.config.js配置的输出文件路径是否与package.json一样。

发布到npm

1、注册

进入官网,注册帐号

2、登录并发布
npm login
npm publish

提示报错是因为注册完后没有进行邮箱验证,验证完成即可发布成功

参考文献

如何制作并发布一个vue的组件的npm包
发布自己第一个npm 组件包(基于Vue的文字跑马灯组件)

原文地址:https://www.cnblogs.com/h2zZhou/p/12336236.html

时间: 2024-10-31 17:46:23

【转】制作并发布第一个vue组件的npm包的相关文章

写一个vue组件

写一个vue组件 我下面写的是以.vue结尾的单文件组件的写法,是基于webpack构建的项目.如果还不知道怎么用webpack构建一个vue的工程的,可以移步到vue-cli. 一个完整的vue组件会包括一下三个部分: template:模板 js: 逻辑 css : 样式 每个组件都有属于自己的模板,js和样式.如果将一个页面比喻成一间房子的话,组件就是房子里的客厅.卧室.厨房.厕所.如果把厨房单独拿出来的话,组件又可以是刀.油烟机...等等.就是说页面是由组件构成的,而组件也可以是组件构成

在2018年如何优雅的开发一个typescript语言的npm包?

欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由小明plus发表 很多时候,我们可能想要用 typescript 语言来创建一些模块,并提交到 npm 供别人使用, 那么在 2018 年,如果我想要初始化这样的一个模块,我需要做哪些步骤呢?: 答案是:创建一个优雅的,对开发者友好的模块,至少需要以下 15 个步骤 初始化文件夹,初始化 git 仓库,初始化 npm,初始化 tsc 修改 tsconfig.js 配置 添加 npm 脚本 添加 tslint 校验代码规则以及 ed

【转】从零开始开发一个vue组件打包并发布到npm (把vue组件打包成一个可以直接引用的js文件)

自己写的组件 有的也挺好的,为了方便以后用自己再用或者给别人用,把组件打包发布到npm是最好不过了,本次打包支持 支持正常的组件调用方式,也支持Vue.use, 也可以直接引用打包好的js文件, 配合vue.js 就不需要webpakc这种构建工具了,可以直接在页面内使用,下面以 ‘yyl-npm-practice’ 这个包为例 第一步:使用 vue init webpack-simple yyl-npm-practice   初始化项目 提示: 不要用 vue init webpack npm

vuejs 插件开发并发布到npm--(3)vue组件开发并发布

一.以hyy-vshare插件开发为例 1.初始化插件项目:vue init webpack-simple hyy-vshare,目录结构如下: 2.添加依赖:npm i: 3.启动服务:npm run dev; 4.在src目录下新建lib文件夹,用于组件开发: 5.开发并调试插件 lib/index.js(全局组件的方式) import vshare from './vshare.vue' // 导入组件 vshare.install = function (Vue) { Vue.compo

vue + element-ui 制作tab切换(切换vue组件,踩坑总结)

本篇文章使用vue结合element-ui开发tab切换vue的不同组件,每一个tab切换的都是一个新的组件. 1.vue如何使用element-ui 上一篇文章已经分享了如何在vue中使用element-ui创建tab组件切换内容(需要了解的朋友点击链接查看) 2.创建相应文件. a.创建父组件 src/components/tabZujian.vue b.创建自组件(被切换的组件)src/tabComponents 文件夹 + + tabComponents(目录) ---- tabZuji

如何打造一套vue组件库

开篇组件库能帮我们节省开发精力,无需所有东西都从头开始去做,通过一个个小组件拼接起来,就得到了我们想要的最终页面.在日常开发中如果没有特定的一些业务需求,使用组件库进行开发无疑是更便捷高效,而且质量也相对更高的方案. 目前的开源组件库有很多,不管是react还是vue的体系里都有很多非常优秀的组件库,比如我经常使用的就有elementui和iview.当然也还有其他的一些组件库,他们的本质其实都是为了节省重复造基础组件这一轮子的过程.也有的公司可能会对自己公司的产品有特别的需求,不太愿意使用开源

vue组件的创建

vue的核心基础就是组件的使用,玩好了组件才能将前面学的基础更好的运用起来.组件的使用更使我们的项目解耦合.更加符合vue的设计思想MVVM. 那接下来就跟我看一下如何在一个Vue实例中使用组件吧! 这里有一个Vue组件的示例: Vue.component('Vheader',{ data:function(){ return { } }, template:`<div class="header"> <div class="w"> <

VUE系列一:VUE入门:搭建脚手架CLI(新建自己的一个VUE项目)

一.VUE脚手架介绍 官方说明:Vue 提供了一个官方的 CLI,为单页面应用快速搭建 (SPA) 繁杂的脚手架.它为现代前端工作流提供了 batteries-included 的构建设置.只需要几分钟的时间就可以运行起来并带有热重载.保存时 lint 校验,以及生产环境可用的构建版本.更多详情可查阅 Vue CLI 的文档. 个人理解:在实际开发中都是通过脚手架快速搭建一个vue项目,当然也可以使用CDN的方式(具体请看官网) 使用脚手架的好处: 1. 脚手架是通过webpack搭建的开发环境

Vue——组件的创建

vue的核心基础就是组件的使用,玩好了组件才能将前面学的基础更好的运用起来.组件的使用更使我们的项目解耦合.更加符合vue的设计思想MVVM. 那接下来就跟我看一下如何在一个Vue实例中使用组件吧! 这里有一个Vue组件的示例: Vue.component('Vheader',{ data:function(){ return { } }, template:`<div class="header"> <div class="w"> <