制作react组件的package

本文介绍如何将React组件打包并在npm上发布。首先,通过创建项目和修改package.json配置,然后详细阐述npm账号注册、本地登录及发布组件的步骤,确保每次发布前更新版本号。

我们平常的项目都是常规的开发流程,打包后直接放到服务器运行。如何才能像我们安装react一样,直接从npm平台下载呢?下面我来说下我的实现方案:

1. 本地打包方式

1.1 创建项目

# 利用create-react-app插件创建react项目
npx create-react-app my-package
# 安装其他依赖
npm i -D @babel/cli rimraf

若还需要其他依赖,请自行安装。

1.2 修改package配置

我这里比较暴力,把所有的依赖都改成了devDependences。需要注意的几个配置如下:

{
   
   
	...
	"version": "0.1.0", // 每次发布时,记得先要更新这个版本号
	...
	"main": "build/index.js" // 指定编译后的文件入口
	...
	 "files": [ "build", "src" ] // 下载package时保留的文件
	...
	 "babel": {
   
     // babel编译配置
	    "presets": [
	      "@babel/preset-react",
	      "@babel/preset-env"
	    ]
	  },
	 ...
}

具体配置如下:

{
   
   
  "name": "my-package",
  "version": "0.1.0",
  "main": "build/index.js",
  "devDependencies": {
   
   
    "@babel/cli": "^7.13.16",
    "@babel/core": "7.12.3",
    "@pmmmwh/react-refresh-webpack-plugin": "0.4.3",
    "@svgr/webpack": "5.5.0",
    "@testing-library/jest-dom": "^5.12.0",
    
在安装 `react-solarlunar` 包之后,`package.json` 文件中该依赖的版本号会根据你安装时所指定的版本或默认行为进行记录。如果你在安装时未明确指定版本,npm 会默认安装最新版本,并在 `package.json` 中以 `^` 前缀表示该版本号。例如: ```json "dependencies": { "react-solarlunar": "^1.0.0" } ``` 其中,`^1.0.0` 表示 npm 会接受主版本号为 `1` 的所有更新,包括补丁和次版本更新,但不会升级到下一个主版本(如 `2.0.0`)[^1]。 如果你希望安装特定版本并锁定该版本而不允许自动更新,则 `package.json` 中将直接写入具体版本号,如: ```json "dependencies": { "react-solarlunar": "1.0.0" } ``` 在这种情况下,除非手动运行 `npm update react-solarlunar` 或修改版本号,否则不会自动升级该依赖。 此外,如果你使用 `npm install react-solarlunar@latest` 安装,则会获取该包当前可用的最高版本,并依据你的 npm 配置决定是否添加 `^`、`~` 或固定版本号[^11]。 在某些项目中,特别是 monorepo 结构的项目,可能会指定依赖的子目录路径,例如: ```json "dependencies": { "react-solarlunar": "file:../path/to/react-solarlunar" } ``` 这表示依赖项是本地文件系统中的一个目录,而不是从远程注册表获取的版本号[^3]。 ### 版本控制策略 - **使用 `^` 符号**:允许自动更新补丁和次版本,但不包括主版本变更。例如,`^1.2.3` 可以更新到 `1.2.4` 或 `1.3.0`,但不会更新到 `2.0.0` [^2]。 - **使用 `~` 符号**:仅允许补丁版本更新,例如 `~1.2.3` 可以更新到 `1.2.4`,但不会更新到 `1.3.0`。 - **不使用任何符号**:表示固定版本,不会自动更新。 - **使用 `latest` 标签**:表示使用当前可用的最高版本[^11]。 ### 示例:查看版本号 你可以通过以下命令查看 `react-solarlunar` 的已安装版本: ```bash npm list react-solarlunar ``` 该命令会显示当前项目中 `react-solarlunar` 的实际版本号。 ### 版本号与构建配置 在 React Native 项目中,`package.json` 中的版本号也可以用于控制应用的版本信息。例如,在 Android 的 `build.gradle` 文件中,可以通过脚本读取 `package.json` 的 `version` 字段来设置应用的版本名称: ```groovy def getAppVersion() { def inputFile = new File("../package.json") def packageJson = new JsonSlurper().parseText(inputFile.text) return packageJson["version"] } def appVersion = getAppVersion() android { defaultConfig { versionName appVersion } } ``` 类似地,在 iOS 构建过程中也可以通过脚本提取 `package.json` 中的 `version` 字段并写入 `Info.plist` 文件[^5]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值