美文网首页程序员
vue开发组件及npm发布

vue开发组件及npm发布

作者: 前端girl吖 | 来源:发表于2018-11-05 11:31 被阅读0次
1、用vue-cil初始化组件
  vue init webpack vue-own-component
  cd vue-own-component
  npm i
  npm run dev
2、根据自己需求,实现具体功能,blablabla......❤
3、添加install.js (本文添加在根目录下)
 import ownComponent from './src/components/ownComponent.vue'
//定义一个对象 需要install方法
const exportComponent = {
   install(Vue,options) {
       if(typeof window !== 'undefined' && window.Vue)    {
           Vue = window.Vue
         }
       //全局注册组件(组件名,组件)
       Vue.component(ownComponent.name, ownComponent)
   }
}
export default exportComponent
4、修改package.json
  • 将private改成false,因为组件包是公用的
  • 配置main "main": "dist/own-custom-file-name.min.js" (配置了这个,才可以在其他项目中直接import '包名')
  • 配置files "files":[ "dist","src"] 指定打包之后,包中存在的文件夹
  • 为方便修改维护,复制了一份打包配置build.js为pack.js来修改,所以scripts需要加上 "pack": "node build/pack.js"
    package.json配置
5、修改配置文件

复制build.js为pack.js,复制base.conf.js和prod.conf.js


build文件结构图
  • pack.js修改一句:
const webpackConfig = require('./webpack.pack.prod.conf')
  • webpack.pack.base.conf.js修改entry入口:
entry: {
  app: './src/install.js'
}
  • webpack.pack.prod.conf.js
const baseWebpackConfig = require('./webpack.pack.base.conf')
......
//修改output
output: {
    path: path.resolve(__dirname, '../dist'),
    publicPath: '',
    filename: '自定义文件名.min.js',
    library: 'VueVideoMeeting', //library指定的就是你使用require时的模块名
    libraryTarget: 'umd', //打包格式,选umd支持node和浏览器2种执行坏境
    umdNamedDefine: true
  },
//添加external,解决以<script>标签形式使用打包后的组件时,出现vue未定义
 externals: {
    vue: {
      root: 'Vue',
      commonjs: 'vue',
      commonjs2: 'vue',
      amd: 'vue'
    }
  },
//修改打包css
 new ExtractTextPlugin({
      filename: '自定义文件名.min.css',
      allChunks: true,
    }),
//还需要删除一系列不需要的配置,否则执行npm run pack会在dist文件下生成一堆不需要的
6、然后npm run pack打包一次 会在dist文件里生成对应的js和css
7、可以本地index.html通过script标签引入dist生成的打包js本地测试一下

如果报错 应该是未注入组件,则可以去install.js新增:

if (typeof window !== 'undefined' && window.Vue) {
  window.Vue.use(组件名)
}

再次打包npm run pack即可。

8、npm run pack打包后没问题 就可以发布npm包了
9、发布npm包
  • 前提:有npm的账户
  • npm login
    输入自己的username,password和email
  • npm publish

注意: 每次publish时都要改版本号并pack一下
版本号:

eg:
1.0.0
major.minor.patch
major: 主版本号
minor: 次版本号
patch: 修订号

🎗ps:
  • 如果每次publish时忘记build(偶经常会忘记嗨* ~ *😀),可以在package.json里scripts配置
   "pub": 'npm run build &&  npm publish'
  • 改版本+打包+发布
    "pub:patch": "npm version patch && npm run pack &&   npm publish",
    "pub:minor": "npm version minor && npm run pack && npm publish",
    "pub:major": "npm version major && npm run pack && npm publish"

❣❣❣ 再一次注意:这边提交可能会报Git working directory not clean 的错,是因为你的修改未提交git,必须提交git后才能执行打包发布命令,这样能保证你发布的包和本地代码保持同步。


🎗补充:这边顺便提一下git忽略已加入版本控制的文件,因为自己做项目时一开始把dist文件夹从.gitignore删了,导致后面每次打包还得提交下dist下的文件,后面再在.gitignore添加忽略/dist/发现无效,需要强制忽略命令:

git update-index --assume-unchanged dist/xxx.min.js
赞赞哇.png

相关文章

  • vue开发组件及npm发布

    1、用vue-cil初始化组件 2、根据自己需求,实现具体功能,blablabla......❤ 3、添加inst...

  • Angular组件开发及NPM发布

    1.创建并修改项目 安装Angular命令行工具: npm install -g @angular/cli 创建一...

  • Vue ERROR Failed to compile with

    Vue 项目中,引用vue组件,该组件是发布成npm包引入的,组件的目录结构和项目的目录结构相似。报错因素 组件中...

  • 发布vue组件npm包

    其实很早之前就想尝试着写一写vue组件然后发布npm包,这次借着公司开发新项目,于是封装了一个Toast组件。 我...

  • 开发vue组件并发布至npm

    创建 vue-cli创建vue简单项目vue init webpack-simple vue-leaflet-ma...

  • vue 搭建组件库(转)vue-cli 3.0

    使用vue-cli3搭建团队的组件库并发布到npm 1.安装vue-cli3并创建一个项目 首先我们先安装开发必要...

  • VUE开发--NPM组件开发

    一、封装npm包 1. 使用vue-cli 创建一个 基础项目。 2.调整目录 我们需要一个目录存放组件,一个目录...

  • Vue 图片/文件上传组件 -- 轻量版 NPM vue-im

    2020.1.20 更新: Vue 组件发布到 npm,安装: HTML 代码: 这里的 input 元素是隐藏的...

  • Npm 发布 Vue 组件教程

    1 前 言 平时我们在开发的时候经常使用 npm 安装各种组件。 今天我们就来尝试下制作一个自己的组件发布到 np...

  • npm发布vue组件包

    前言    现在前端开发基本离不开npm插件包,有的时候自己写了一个组件在多个项目中都有用到,简单粗暴的做法就是C...

网友评论

    本文标题:vue开发组件及npm发布

    本文链接:https://www.haomeiwen.com/subject/elpgtqtx.html