首页 > 解决方案 > 为什么我写的一个 npm 模块在使用 create-react-app 创建项目后会安装这么多包?

问题描述

我使用nwb编写了这个 npm 模块react-heartbeat。当我在一个新项目中安装这个模块时,运行它只需不到 2 秒,并且只安装 1 个包。当我再次安装此模块时,使用 . 创建项目后,需要将近3 分钟,添加 420 个包,删除 218 个包并更新 1257 个包npm i react-heartbeatnpm initnpm i react-heartbeatcreate-react-app

我究竟做错了什么?

我的 npm 模块非常简单,只有1 个 React 组件。它在package.json文件中没有依赖关系。以下是在 nwb 设置项目时创建的对等依赖项和开发依赖项。

"peerDependencies": {
  "react": "16.x"
},
"devDependencies": {
  "@types/mocha": "^5.2.5",
  "nwb": "^0.23.0",
  "react": "^16.5.2",
  "react-dom": "^16.5.2"
},

我按照 nwb文档中的说明准备我的模块以进行发布 ( npm run build) 并发布我的模块 ( npm publish)。正确的文件夹在我的白名单中package.json

"files": [
  "es",
  "lib",
  "umd"
],

我运行npm publish --dry-run并确认我的项目中仅包含以下 7 个文件:

package.json
README.md
es/index.js
lib/index.js
umd/react-heartbeat.js
umd/react-heartbeat.min.js
umd/react-heartbeat.min.js.map

我想知道问题是否出在对等或开发依赖项中,但我不知道如何解决这个问题。

这是react-heartbeat的源代码。它可以npm 上找到。

标签: reactjsnpmnwb

解决方案


create-react-app应该安装它的依赖项,但可能失败了。每次运行时npm i,它都会从package.json.

确保在安装你的依赖项之前安装依赖项,运行npm i并检查任何新内容。


推荐阅读