在使用create-react-app创建项目后,为什么我编写的npm模块会安装这么多软件包?

时间:2018-10-18 15:18:32

标签: reactjs npm nwb

我使用react-heartbeat编写了这个npm模块nwb。当我在新项目npm i react-heartbeat中安装此模块时,在运行npm init之后,只需不到2秒的时间,并且仅安装1个软件包。当我使用npm i react-heartbeat创建项目后,再次create-react-app安装此模块时,将花费近 3分钟,添加420个软件包,删除218个软件包并更新1257个软件包。 / p>

我在做什么错了?

我的npm模块非常简单,仅为1 React component。它在package.json文件中没有依赖性。在nwb设置项目时创建的以下对等依赖项和dev依赖项。

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

我按照nwb的documentation的指示来准备要发布的模块(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上找到here

1 个答案:

答案 0 :(得分:0)

create-react-app应该安装它的依赖项,但可能失败。每次您运行npm i时,它将安装package.json中缺少的依赖项。

通过运行npm i确保在安装依赖项之前已安装依赖项,并且没有进行任何新检查。