首页 > 其他分享 >vue2打包组件发布到npm

vue2打包组件发布到npm

时间:2023-09-11 09:44:23浏览次数:45  
标签:npm index vue cli lib js vue2 组件

1.使用 vue create projectName 新建一个项目

2.将src的文件夹名称改为example,便于我们调试代码

3.增加packages文件夹,其下面的index.js代码如下

import panel from './panel/index.vue'

const components = [
    panel
]

const install = function (Vue) {
    if (install.installed) return
    components.map(component => Vue.component(component.name, component))
}

if (typeof window !== 'undefined' && window.Vue) {
    install(window.Vue)
}

export default {
    install
}

4.修改vue.config.js,代码如下:

const { defineConfig } = require('@vue/cli-service')
const {resolve} = require('path')
module.exports = defineConfig({
  transpileDependencies: true,
  pages: {
    index: {
      entry: 'examples/main.js', // 因为我们改了src目录,所以对应的入口文件配置也要做修改
      template: 'public/index.html',
      filename: 'index.html'
    }
  },
  // 扩展 webpack 配置,使 packages 加入编译
  chainWebpack: config => {
    config.module
        .rule('js')
        .include.add(resolve(__dirname, 'packages')).end()
        .use('babel')
        .loader('babel-loader')
        .tap(options => {
          // 修改它的选项...
          return options
        })
  },
  css: { extract: false }
})

 5.前面的准备好以后,需要在package.json中的script节点下添加一个命令:

"lib": "vue-cli-service build --target lib --name wjs packages/index.js"

网上有些写法是这样的,更加细化点:

"lib": "vue-cli-service build --target lib ./src/package/index.js --name drawing-box --dest drawing-box"

前面的lib可以根据自己喜好进行命名,后面的命令为:

  • –target lib 路径 => 指定打包的目录
  • –name 名称 => 打包后的文件名字
  • –dest 名称 => 打包后的文件夹的名称

完整的package.json代码如下:

{
  "name": "wjs0509-panel",
  "version": "0.1.0",
  "private": false,
  "main": "dist/wjs.umd.min.js",
  "author": {
    "name": "wjs0509",
    "email": "[email protected]"
  },
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lib": "vue-cli-service build --target lib --name wjs packages/index.js"
  },
  "dependencies": {
    "core-js": "^3.8.3",
    "vue": "^2.6.14"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~5.0.0",
    "@vue/cli-service": "~5.0.0",
    "sass": "^1.32.7",
    "sass-loader": "^12.0.0",
    "vue-template-compiler": "^2.6.14"
  }
}

打包命令:

npm run lib

6.打包完成后后生成dist目录:

7.将组件库上传到npm:

7.1.修改如下几个参数

 7.2.在项目的根目录下增加一个.npmignore文件

examples/
packages/
public/
node_nodules/
preview/
vue.config.js
postcss.config.js
babel.config.js
.gitignore
jsconfig.json
package-lock.json
*.map
.idea/

7.3.上传到npm

(1)npm config get registry  // 检查npm源是不是: https:/lregistry.npmjs.orgl,大多数人都改成了淘宝镜像,需要改回来
(2)npm login  // 登录npm,没有账号需要先注册
(3)npm publish  // 发布到npm库

8.整个项目的结构

 

标签:npm,index,vue,cli,lib,js,vue2,组件
From: https://www.cnblogs.com/wjs0509/p/17692697.html

相关文章

  • vue项目成功引入element组件的具体步骤
    1、首先要确保vue项目能够成功在浏览器访问2、一般使用的是vue3那么,需要注意的是,element组件在vue3里面,需要使用的是element-plus命令:npminstallelement-plus--save--legacy-peer-deps下载完成之后,需要在main.js里面对element组件进行引入:importElementPlusfrom'ele......
  • cnpm : 无法加载文件 C:\Program Files\nodejs\node_global\cnpm.ps1
    在win10上运行cnpm命令时出现:cnpm:无法加载文件C:\ProgramFiles\nodejs\node_global\cnpm.ps1,因为在此系统上禁止运行脚本。解决办法记录如下: 在powershell中执行Start-Processpowershell-VerbrunAs会提示授权,并以管理员身份运行powershell 继续重新执行set-Ex......
  • Vue组件传值方法
    使用propsprops是用于向子组件传递数据的一种方式。父组件可以将数据传递给子组件的props属性,子组件则可以通过props来访问这些数据。父组件:<template><div><child-component:message="message"></child-component></div></template>子组件:<template><div>{......
  • 在springboot项目种引入element组件
    1、保证vue的版本在3以上2、Win+R--打开命令行窗口(cmd)输入下面的命令,打开图形化界面:vueui3、打开我们创建的vue项目选择路径即可自主导入项目;4、安装element-ui的插件依赖5、查看项目中是否存在ok!......
  • 鉴于vue2使用element组件不太方便,换成vue3的具体步骤
    1、卸载原有的vue2npmuninstallvue-cli-g卸载完成!2、按照最新的下载vue3命令下载vue3npminstall-g@vue-cli下载完成!(等了大概快10分钟)......
  • Vue学习一:vue2的基本指令
    Vue是一个构建用户界面的渐进式框架。官网:https://cn.vuejs.org/。Vue可以用网上的CDN,也可以下载到本地(下载的话就是进入官网打开学习文档,点击基础里面的安装,点击里面的开发版本这几个字,建议下载开发版本,里面包含完整的警告和调试模式)1、创建Vue2实例首先将下载的vue.js引入到h......
  • 微信小程序官方小程序隐私授权 组件
    关于8月10日微信官方发布公告关于小程序隐私保护指引设置的公告,从2023年9月15日起必须用户点击同意隐私保护政策并同步给微信之后,开发者才可以调用微信提供的隐私接口。了解首先,涉及到使用了隐私接口的小程序必须在「小程序管理后台」设置《小程序用户隐私保护指引》......
  • django-前端时间组件
    1、插件的下载BootstrapDatepicker是一款基于Bootstrap框架的日期选择控件,可以方便地在Web应用中添加可交互的日期选择功能。BootstrapDatepicker拥有丰富的选项和API,支持多种日期格式,可以自定义样式并支持各种语言。BootstrapDatepicker依赖bootstrap:bootstrap.min.css......
  • vue子组件获取父组件数据
    1、使用this.$parent.event直接调用//父组件<template><div><child></child></div></template><script>importchildfrom'~/components/dam/child';exportdefault{components:{child},......
  • 文字组件表格中的文字纵向居中问题
    问题:文字组件中插入的表格,其中文本内容纵向如何设置居中解决:选取表格》表格工具》对齐方向》垂直居中 如果设置了垂直居中后文字仍是靠下,就需要考虑是否存在空段落, 以下设置可以显示编辑标记:开始》段落》显示/隐藏段落标记如果确实是空段落造成的,可以使用替换解决:选取表......