使用React Framework时,node_modules文件太多

时间:2018-07-10 16:11:05

标签: node.js reactjs npm npm-install node-modules

当我使用react框架并执行npm install时,在我的node_modules上生成了大约27,000个文件。大小不是问题,而是文件的数量。如果必须将该目录复制到其他位置,由于文件太多,将花费很长时间。如果我必须删除它,那也要花费很长时间。我的Google驱动器同步没有用于node_modules的“排除文件夹”选项,因此,与云同步也需要很长时间。我也不喜欢我拥有的每个React项目都会生成另外27,000个文件的事实。

有人对此有解决方案吗?基本上,我不想为我创建的每个React项目提供27,000个文件。我当时想在某个地方只有一个GLOBAL node_modules,所有react应用程序都会调用它,而不是创建自己的node_modules文件夹。

这是我的package.json

{
  "name": "react-typescript-tutorial",
  "version": "0.1.0",
  "private": true,
  "dependencies": {
    "axios": "^0.18.0",
    "enzyme": "^3.3.0",
    "react": "^16.4.1",
    "react-bootstrap": "^0.32.1",
    "react-dom": "^16.4.1",
    "react-redux": "^5.0.2",
    "react-router-dom": "^4.3.1",
    "react-router-redux": "^5.0.0-alpha.9",
    "redux": "^4.0.0",
    "redux-thunk": "^2.3.0"
  },
  "scripts": {
    "start": "react-scripts-ts start",
    "build": "react-scripts-ts build",
    "test": "react-scripts-ts test --env=jsdom",
    "eject": "react-scripts-ts eject"
  }
}

P.S。如果可以生成更少的文件,我愿意更改为另一个包管理器,例如yarn或其他任何东西。

3 个答案:

答案 0 :(得分:1)

尝试一下:

  1. 在全局环境中安装所有依赖项。
  2. 转到该模块的每个模块(只是依赖项中的模块),然后运行您注册该模块的npm link
  3. 转到您的项目并运行npm link <name module need link>
  4. 完成,npm创建了到您的依赖项的链接

我不通过Google驱动器同步它,但npm不需要安装它。

您可以尝试 Exclude folder in Folder Exclude subfolder from sync, but keep this folder in PC

或者您不使用npm install安装模块。 您应该为所有人安装全局变量,并将环境变量NODE_PATH设置为全局node_modules。 需要时,节点将调用它。

答案 1 :(得分:1)

我同意,他们制作多少个文件太荒谬了。如果他们不会在一个新文件中只写十行,那会更好。我认为该结构不是很可靠。可怜的文件系统必须制作所有这些文件。幸运的是,我不再使用硬盘驱动器,但是处理许多文件仍然需要更长的时间。

edit:所以我只检查了我的react ++ mobx,+ decorators项目,它有一个node_modules文件夹,用于存放重复文件的小项目。它具有16000个重复文件,可以清除280MB中的150MB。我认为这完全是不必要的。当每个依赖项可能使用相同的版本时,它们可能会出现多个版本。

答案 2 :(得分:0)

我正在考虑学习其他东西。

Elm听起来很有希望使文件系统井井有条。 谷歌的聚合物项目旨在将网络变成根本不需要任何框架。