vue-cli 3.x 开发插件并发布到 npm

1、npm基本步骤

1、如果不是用的是淘宝的镜像,要先修改

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

2、然后登录自己的npm账号,没有的先去官网注册一个

npm login
Username:
Password:
Email: (this IS public)  // 邮箱
npm notice Please check your email for a one-time password (OTP) // 输入你邮箱收到的8位验证码

3、 打包(如果要上传源码可忽略)
使用build的lib方式打包

 "lib": "vue-cli-service build --target lib --name element-textarea --dest lib src/index.js"

5、上传

npm publish

2、提交一个现有的组件要修改的配置

参考博客:
https://www.cnblogs.com/wisewrong/p/10186611.html

我的目录与上面博客不太一样:
在这里插入图片描述

index.js 文件
import ElementTextarea from './components/ElementTextarea'
// 创建 install 函数
// vue.use 会默认查找并调用 install 函数
ElementTextarea.install = function (Vue) {
  // 注意:第一个参数是组件名称,我们在页面引用时用到
  Vue.component(ElementTextarea.name, ElementTextarea)
}

// 暴露 install 函数
export default ElementTextarea;
pakage.json 文件
{
  "name": "element-textarea", // 组件的名称
  "version": "0.1.7",         // 版本号, 每次publish都要修改
  "private": false,
  "description": "组件式输入框, 像文字一样增删自定义组件",  // 说明
  "main": "lib/element-textarea.umd.min.js",   // 注意这个路径是打包完的
  "keywords": [
    "自定义输入框",
    "像文字一样增删自定义组件",
    "vue",
    "vue插件"
  ],      // 关键词
  "author": "dahe",
  "license": "MIT",  // 协议--公开
  // 下面就是vue-cli3创建项目基本的内容了
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build",
    "lib": "vue-cli-service build --target lib --name element-textarea --dest lib src/index.js"
  },
  "dependencies": {
    "core-js": "^3.6.5",
    "vue": "^2.6.11"
  },
  "devDependencies": {
    "@vue/cli-plugin-babel": "~4.5.0",
    "@vue/cli-service": "~4.5.0",
    "vue-template-compiler": "^2.6.11"
  },
  "browserslist": [
    "> 1%",
    "last 2 versions",
    "not dead"
  ]
}

打包文件使用lib方式,

npm run lib

打包的结果就在lib文件夹中,但我们并不需要npm publish 所有的文件,所以需要配置.npmignore, 如果没有这个文件,npm publish时将按照gitignore中配置的来。

.npmignore
.DS_Store
node_modules
/dist
src
public
vue.config.js
babel.config.js
*.map
*.html
// 主要是上面忽略的文件和文件夹

# local env files
.env.local
.env.*.local

# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*

# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
README.md

这个文件是markdown格式的,里面的内容就是在npm网站上的介绍内容。

安装之后的目录
npm install --save element-textarea

在这里插入图片描述

3、同一份代码,直接提交源代码

更改pakage.json 中的name 和版本号
{
  "name": "element-textarea-origin", // 修改
  "version": "0.1.0",    // 修改
  "private": false,
  "description": "组件式输入框未打包的文件",// 修改
  "main": "src/index.js", // 由于是源文件,没有lib文件夹了, main也要修改
  "keywords": [
    "自定义输入框",
    "未打包",
    "vue",
    "vue插件"
  ],
  "author": "dahe",
  "license": "MIT",
  "scripts": {
    "serve": "vue-cli-service serve",
    "build": "vue-cli-service build"
  },
.npmignore修改
.DS_Store
node_modules
lib

# local env files
修改README,引入方式改变,只需要引入组件
import ElementTextarea from 'element-textarea-origin'
重新npm publish, 又是一个新的库.

这个库npm install 之后,下载的文件就跟目录一样。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值