将 React 组件作为 Node 模块导出到 NPM

发布日期:2026-07-05 03:49:03   来源 : 杭州电子商务研究院    浏览量 :18
杭州电子商务研究院 发布日期:2026-07-05 03:49:03  
18

介绍

如果你一直在为项目开发 React 中的可重用组件,那么一种有效的开发方法是将它们作为node 包发布到 npm 。这有两点好处:首先,你可以在未来的项目中将它们用作依赖项,而无需手动复制代码。其次,你可以让其他开源开发人员查看该包,提出建议,删除错误,并为你进一步开发。

在本指南中,您将学习如何使用 Create-React-App 创建一个简单的 React 组件并将其作为节点模块导出到 npm。

设置

让我们在 React 中构建一个简单的水平规则组件。为了简洁起见,它将是一个简单的 React 组件,用于渲染hr标签。但是,您可以用它做更多的事情,例如添加props,让开发人员在使用和样式方面具有更多的可定制性。

使用 Create-React-App 创建一个空的 React 项目。

      npx create-react-app react-hr-component
    

安装 Babel 来转换 ES6 JavaScript。

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

接下来,在根目录中创建一个名为component的文件夹。您的自定义组件位于此文件夹中。这很重要,因为在某个时候您会列出组件的路径。

创建组件

组件文件夹中,创建一个名为HR.js 的文件,其中包含组件的代码。在其中渲染一个简单的hr标签。

      import React from 'react';

export const HR=()=><hr/>
    

您可以直接将样式作为内联 JSX 样式添加到其中,也可以使用单独的文件使用类来设置 JSX 元素的样式。如果您使用后一种方法来设置组件的样式,请确保正确导入它。您还可以将宽度、高度、颜色、重量等属性传递给此组件,并相应地设置hr标签的样式。

对 package.json 进行配置更改

您的组件已准备就绪,可以发布到 npm 上。下一步是对package.json文件进行一些配置更改,以便将此组件导出为 npm 上的节点模块。在scripts下的package.json文件中,添加以下行:

      "publish:npm": "rm -rf dist && mkdir dist &&  babel src/component -d dist --copy-files"
    

上面这行代码允许你使用 Babel 编译 JavaScript。创建一个名为dist的目录,然后使用单个命令将编译后的 JavaScript 复制到此文件中。

您需要做的下一个更改是将private设置为false,以允许任何人将您的组件用作普通依赖项或节点模块。此外,在 Babel 的 presets 配置中添加 Babel preset-react,以便为您的组件添加 React 特定支持,例如对 JSX 的支持。

      {
  "name": "react-hr-component",
  "version": "0.1.0",
  "private": false,
  "babel": {
    "presets": [
      "@babel/preset-react"
    ]
  }
  ...
}
    

package.json文件中显示的名称是 npm 上出现的组件的实际名称。您可以在此处查看整个package.json文件:

      {
  "name": "react-hr-component",
  "version": "0.1.0",
  "private": false,
  "babel": {
    "presets": [
      "@babel/preset-react"
    ]
  },
  "dependencies": {
    "@testing-library/jest-dom": "^4.2.4",
    "@testing-library/react": "^9.5.0",
    "@testing-library/user-event": "^7.2.1",
    "react": "^16.13.1",
    "react-dom": "^16.13.1",
    "react-scripts": "3.4.3"
  },
  "scripts": {
    "start": "react-scripts start",
    "build": "react-scripts build",
    "test": "react-scripts test",
    "eject": "react-scripts eject",
    "publish:npm": "rm -rf dist && mkdir dist &&  babel src/component -d dist --copy-files"
  },
  "eslintConfig": {
    "extends": "react-app"
  },
  "browserslist": {
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ],
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ]
  },
  "devDependencies": {
    "@babel/cli": "^7.11.5",
    "@babel/preset-react": "^7.10.4"
  }
}
    

如果有任何差异,请使用本示例中使用的 React 的确切版本。

将组件发布到 npm

只需几个命令即可将 React 组件发布到 npm。首先,确保您在npmjs上有一个帐户。

在终端内运行:

      npm login
    

命令行将提示您输入 npm 凭据。成功登录后,运行以下命令:

      npm run publish:npm
    

上面这行代码是你创建的脚本的别名,用于使用 Babel 转译 ES6 代码并为你的组件创建构建。最后,运行以下命令:

      npm publish
    

您已成功将 React 组件作为节点模块导出到 npm!

您可以像使用 npm 上任何其他 React 组件一样使用它。

结论

将 React 组件发布到 npm 可让您更快地进行开发,还可帮助其他开发人员将您的组件用作项目中的节点模块。在 npm 上发布组件后,您还应提供其安装和使用的文档以及 GitHub 存储库。

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据