【npm】如何发布到npm

前言

本文讲解如何将 ReactHookJS函数 发布到npm,案例采用另一篇文章:React如何监听LocalStorage的变化

至于如何发布vite插件可以查看另一篇文章:如何将开发的vite插件发布到npm

一、创建本地项目

1. 初始化项目

生成项目目录并且初始化package.json

npm init -y

2. 编写主要内容

src 目录下创建插件文件 index.js,并书写逻辑。

import { useEffect } from "react"

function safeParse(jsonString) {
  if (jsonString === null) {
    return null
  }
  try {
    return JSON.parse(jsonString)
  } catch (error) {
    console.error("Error parsing JSON:", error)
    return null
  }
}

function useLocalStorageListener(localStorageKey, callback) {
  useEffect(() => {
    const originalSetItem = localStorage.setItem
    localStorage.setItem = function (key, newValue) {
      const setItemEvent = new CustomEvent("setItemEvent", {
        detail: { key, newValue },
      })
      window.dispatchEvent(setItemEvent)
      originalSetItem.apply(this, [key, newValue])
    }

    const handleSetItemEvent = (event) => {
      const customEvent = event
      if (event.detail.key === localStorageKey) {
        // 这里的key就是本地存储对应的key
        const updatedValue = safeParse(customEvent.detail.newValue)
        callback(updatedValue) // 将本地存储最新的值传给回调函数
      }
    }

    window.addEventListener("setItemEvent", handleSetItemEvent)

    return () => {
      window.removeEventListener("setItemEvent", handleSetItemEvent)
      localStorage.setItem = originalSetItem
    }
  }, [localStorageKey, callback])
}

export default useLocalStorageListener

3. 配置打包工具

使用 babel 或 tsc 来编译代码。如果是纯 JavaScript 项目,可以使用 babel 进行编译。

安装 babel 及其相关依赖:

npm install --save-dev @babel/cli @babel/preset-env @babel/preset-react @babel/core

然后,在项目根目录下创建一个名为 .babelrc 的文件,并添加以下内容:

{
  "presets": ["@babel/preset-env", "@babel/preset-react"]
}

package.json 文件中,添加一个 build 脚本来编译代码:

{
  "scripts": {
    "build": "babel src --out-dir lib"
  }
}

编译代码:

npm run build

4. 发布

确保登录了 npm:

npm login

登录后,运行以下命令将包发布到 npm:

npm publish --access public

注意

  • package.json中的name就是包名
  • package.json中name不能含有大写字母、中文字符、特殊字符等
  • 如果npm使用了如淘宝镜像等,需要切回官方地址
npm config set registry https://registry.npmjs.org/
  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要将GitHub代码发布npm,可以按照以下步骤进行操作: 1. 首先,在代码目录中执行以下命令将代码提交到GitHub仓库: ``` git add . git commit -m "init commit" git push ``` 2. 将GitHub仓库地址复制到npm包的package.json文件中的"repository"字段中,例如: ``` "repository": "https://github.com/your_username/your_repository.git" ``` 3. 执行以下命令将完整和正确的代码发布npm: ``` npm login // 输入npm账号名 // 输入npm密码 // 输入npm邮箱 npm publish ``` 4. 验证发布是否成功。 此外,你还可以在GitHub目录下创建一个自动提交和更改npm版本的脚本,以便简化发布过程。例如,你可以创建一个名为autopublish.sh的脚本,内容如下: ``` #!/bin/bash commit_name="`date +%Y%m%d%H`_commit" echo "====git auto push start..." echo $commit_name git add . git commit -m $commit_name npm version patch git push echo "====git auto push end..." ``` 然后,在执行发布之前,运行该脚本即可自动提交代码并更改npm版本。 希望以上信息对你有所帮助! #### 引用[.reference_title] - *1* [如何将自己写的代码同步到github并发布npm](https://blog.csdn.net/yorcentroll/article/details/105214724)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [利用GitHub actions实现自动发布npm package](https://blog.csdn.net/misswuyang/article/details/116453839)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

田本初

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值