创建、发布npm包,并且应用在项目里面

这篇具有很好参考价值的文章主要介绍了创建、发布npm包,并且应用在项目里面。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

实现一个函数去监听dom宽高的变化,并且发布NPM包,然后使用到项目中
创建、发布npm包,并且应用在项目里面,npm,npm,前端
步骤

1.5W3H 八何分析法
2.如何监听dom宽高变化
3.如何用vite 打包库
4.如何发布npm

一、NPM包新建过程

查看完整目录
创建、发布npm包,并且应用在项目里面,npm,npm,前端

1.生成 package.json

npm init

生成TS配置文件 tsconfig.json

 npm install typescript npx tsc --init

新建vite.config.ts

import { defineConfig } from 'vite'
//globals  umd 支持 amd cmd cjs 全局变量模式

export default defineConfig({
    build: {
        lib: {
          // Could also be a dictionary or array of multiple entry points
          entry: 'src/index.ts',
          name: 'useResize',
          // the proper extensions will be added
        //   fileName: 'my-lib',
        },
        rollupOptions: {
          // 确保外部化处理那些你不想打包进库的依赖
          external: ['vue'],
          output: {
            // 在 UMD 构建模式下为这些外部化的依赖提供一个全局变量
            globals: {
                useResize: 'useResize',
            },
          },
        },
      },
})

写功能src/index.ts

import { App, defineComponent, onMounted } from 'vue'
 
function useResize(el: HTMLElement, callback: (cr: DOMRectReadOnly,resize:ResizeObserver) => void) {
    let resize: ResizeObserver
        resize = new ResizeObserver((entries) => {
            for (let entry of entries) {
                const cr = entry.contentRect;
                callback(cr,resize)
            }
        });
        resize.observe(el)
}
 
const install = (app: App) => {
    app.directive('resize', {
        mounted(el, binding) {
            useResize(el, binding.value)
        }
    })
}
 
useResize.install = install
 
export default useResize

新建index.d.ts 编写声明文件

// 声明文件
declare const useResize: {
    (el: HTMLElement, callback: Function): void;
    install: (app: App) => void;
};

export default useResize

装进依赖里面devDependencies npm i vite -D 装进依赖里面devDependencies

npm i vue -D 

编写配置

最后 打包,package.json 添加配置 require import 查找

npm run build 
"main": "dist/v-resize-tc.umd.js",
"module": "dist/v-resize-tc.mjs",

配置哪些文件需要发布到npm

"files": [ "dist", "index.d.ts" ],

配置版本号,每次发布需要修改

"version": "0.0.1",

package.json完整代码

{
  "name": "v-resize-tc",
  "version": "0.0.2",
  "description": "实现一个函数同时支持 hook 和 自定义指令 去监听dom宽高的变化",
  "main": "dist/v-resize-tc.umd.js",
  "module": "dist/v-resize-tc.mjs",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "vite build"
  },
  "author": "tangce",
  "files": [
    "dist",
    "index.d.ts"
  ],
  "license": "ISC",
  "dependencies": {
    "typescript": "^5.1.6"
  },
  "devDependencies": {
    "vite": "^4.4.4",
    "vue": "^3.3.4"
  }
}

.npmignore忽略发布

# .npmignore
/node_modules
/src

二、发布NPM

1.注册账号

npm adduser

2.登录账号

npm login

3.打包

npm run build

4.输入 发布NPM

npm publish

常见错误情况处理-403,地址切换问题

通过安装nrm依赖包,管理和切换镜像地址:

npm install -g nrm

安装后,输入以下指令,切换到官方源地址

nrm use npm

发布完成后,再切换回淘宝镜像地址

nrm use taobao

查看当前地址

npm get registry

查看当前用户名

npm whoam i

附上代码及截图
创建、发布npm包,并且应用在项目里面,npm,npm,前端
三、项目中使用包

创建、发布npm包,并且应用在项目里面,npm,npm,前端
引入包

npm i v-resize-tc -D

具体使用情况文章来源地址https://www.toymoban.com/news/detail-581006.html

<template>
  <a href="https://www.npmjs.com/package/v-resize-tc">https://www.npmjs.com/package/v-resize-tc</a>
  <div class="resizeBox">
    https://www.npmjs.com/package/v-resize-tc
  </div>
</template>
<script setup lang='ts'>
import useResize from 'v-resize-tc'
import { onMounted } from 'vue'
onMounted(() => {
  useResize(document.querySelector('.resizeBox') as HTMLElement, (e:any) => {
    console.log(e)
  })
})
</script>
<style scoped lang='scss'>
.resizeBox{
  width: 300px;
  height: 300px;
  border: 1px solid #ccc;
  resize: both;
  overflow: hidden;
}
</style>

到了这里,关于创建、发布npm包,并且应用在项目里面的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 前端工程化:发布一个属于自己的规范 npm 包

    初始化项目 首先在github创建一个仓库,协议选择MIT,gitignore选择Node,添加README.md描述文件。使用git clone将项目克隆到本地。cd 进入目录,使用vscode打开(终端输入code . 命令即可)。 然后创建一个合理的目录结构: 配置 typescript 统一代码风格 首先,配置eslint,使用遵循Air

    2024年02月05日
    浏览(61)
  • 记录使用jenkins配置maven,并且打包,部署,发布maven项目的过程

    专栏的前面几篇博客已经把jenkins和gitlab集成起来了,接着我们开始打包,部署发布maven项目 首先在jenkins中安装maven,docker安装的maven默认安装了java,但是没有安装maven,所以这里我们需要自己进入到jenkins容器中,然后安装maven。 我这里的maven是自己在官网传送门下载的最新版

    2024年02月02日
    浏览(81)
  • 学习笔记应用——创建用户账户并且拥有自己的信息

    将建立一个用户注册和身份验证系统,让用户能够注册账户,进而登录和注销。我们将创建一个新的应用程序,其中包含与处理用户账户相关的所有功能。 我们首先使用命令 startapp 来创建一个名为 users 的应用程序: 成功后,出现如图文件 编写users/urls.py 编写users/views.py 编写

    2024年01月20日
    浏览(77)
  • 将vue项目变成可发布的npm包项目

    第一步: 在main.ts 文件的平级上新建一个index.ts文件 ,文件中导出你想发布的组件 第二步: 在package.json文件的平级上新建index.js文件  第三步: 修改package.json文件,新增命令     \\\"buildnpm\\\": \\\"vue-cli-service build --target lib --name preview src/index.ts\\\"

    2024年02月07日
    浏览(32)
  • git 创建项目,创建dev分支,并且关联和提交dev分支,删除无用分支

    1,先拉取主干master代码 git clone +git地址 2,创建本地分支,切换分支 假设远程仓库只有mater分支 此时会在本地生成一个master分支,用 git branch --all  查看全部分支 3,然后切换到本地dev分支 git push,提交到远程dev分支,但是此时还没有关联,只不过远程dev分支有了代码和该dev分

    2023年04月22日
    浏览(43)
  • Vue3+Vite+Element-plus搭建组件库并使用Vitepress编辑组件库文档且发布到 npm并且部署 github pages(vitepress文档渲染.vue组件-推荐使用第二种)

    可以参考我之前发布的vite快速搭建vue3项目文章来创建;也可以直接使用我开源Vue3.2+Ts+Vite3+Pinia+Element-Plus模板wocwin-admin 以下我以 wocwin-admin 项目为例 当前目录结构如下 1、编辑 packages/table/index.ts,实现组件的导出 2、编辑 packages/index.ts 文件,实现组件的全局注册 1、安装vite

    2024年02月13日
    浏览(154)
  • 前端工程化 搭建私有组件库 组件从开发到发布私有npm仓库的全过程

    前言 基于Vue3.0 + TS的组件从开发组件库到发布私有npm仓库的全过程 环境 这里列出本文所使用的环境版本 vue 3.0 vue/cli 4.5.9 nodeJs 14.15.1 npm 6.14.8 vue --version @vue/cli 4.5.9 npm -v 6.14.8 node -v v14.15.1 步骤 创建项目 使用 vue-cli 创建一个 vue3 项目,假设项目名为 avatar-ui-vue vue create avatar-u

    2024年02月02日
    浏览(131)
  • npm 创建 node.js 项目

    package.json重要说明 package.json是创建任何node.js项目必须要有的一个文件。 因为在package.json文件中,有详细的项目描述, 包括: (1)项目名称:name (2)版本:version (3)依赖文件:dependencies 等等.. 1. 创建node.js项目步骤 (1) 创建package.json文件 (2) 运行npm install 创建node_modules这个文件夹

    2024年02月11日
    浏览(52)
  • Android Studio Cursor里面的数据获取并且使用

    在这里以我用的Sqlite为例: 使用Cursor对象获取查询结果 一、要执行查询,需要用到SQLiteDatabase 对象的rawQuery()方法,第1个参数为SELECT语句,第2个参数设为null即可:         二、rawQuery()方法返回的查询结果为Cursor类的对象。Cursor可称为”数据指针“,要读取查询结果中某

    2024年02月04日
    浏览(42)
  • 前端主流框架:项目运行命令 npm 详解

            作为一位资深前端开发,我对npm(Node Package Manager)的使用有着深入的了解。npm是Node.js的包管理器,用于安装、管理和删除各种前端库和工具。现在,让我们深入了解npm在Vue、React、Angular和Vue 3项目中的一些基本使用方法和配置。 npm提供了一系列命令,用于管理项

    2024年02月19日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包