Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 使用react framework时,节点\u模块的文件过多_Node.js_Reactjs_Npm_Npm Install_Node Modules - Fatal编程技术网

Node.js 使用react framework时,节点\u模块的文件过多

Node.js 使用react framework时,节点\u模块的文件过多,node.js,reactjs,npm,npm-install,node-modules,Node.js,Reactjs,Npm,Npm Install,Node Modules,当我使用react framework并执行npm安装时,在我的节点单元模块上生成了大约27000个文件。问题不在于大小,而在于文件的数量。如果我必须将该目录复制到其他地方,由于文件太多,需要很长时间。如果我必须删除它,那也需要很长时间。我的Google drive sync没有节点_模块的“排除文件夹”选项,因此,将其与云同步也需要很长时间。我也不喜欢我的每个react项目都会生成另外27000个文件 有人能解决这个问题吗?基本上,我不希望我创建的每个react项目都有27000个文件。我想在

当我使用react framework并执行
npm安装时
,在我的节点单元模块上生成了大约27000个文件。问题不在于大小,而在于文件的数量。如果我必须将该目录复制到其他地方,由于文件太多,需要很长时间。如果我必须删除它,那也需要很长时间。我的Google drive sync没有节点_模块的“排除文件夹”选项,因此,将其与云同步也需要很长时间。我也不喜欢我的每个react项目都会生成另外27000个文件

有人能解决这个问题吗?基本上,我不希望我创建的每个react项目都有27000个文件。我想在某个地方有一个全局节点模块,所有react应用程序都会调用它,而不是创建自己的节点模块文件夹

这是我的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"
  }
}
另外,如果能生成更少的文件,我愿意换一个不同的包管理器,比如纱线或其他任何东西。

试试这个:

  • 在全局中安装所有依赖项
  • 转到它的每个模块(仅依赖项中的模块)并运行注册该模块的
    npm link
  • 转到您的项目并运行
    npm链接
  • 完成后,npm创建了指向您的依赖项的链接
  • 我不需要谷歌硬盘同步或不同步,但npm不需要安装它

    你可以试试看

    或者您不使用
    npm install
    安装模块。 您应该为所有模块安装全局,并将环境变量
    NODE\u PATH
    设置为全局NODE\u模块。
    当需要时,node会调用它。

    我同意,它们生成的文件数量太多了。如果他们不在一个新文件中只写十行就更好了。我认为这个结构不是很坚固。而糟糕的文件系统必须生成所有这些文件。幸运的是,我不再使用硬盘了,但处理很多文件仍然需要更长的时间


    编辑:所以我刚刚检查了我的react++mobx,+decorators项目,它有一个用于重复文件的小项目的node_modules文件夹。它有16000个重复文件,可以清除150MB或280MB的文件。我认为这是荒谬的没有必要的。可能每个依赖项都有多个版本,而他们本可以使用相同的版本。

    我正在考虑学习其他东西

    Elm听起来很有希望实现有组织、整洁的文件系统。
    谷歌聚合物项目的目标是改变网络,使其完全不需要任何框架。

    您是否将项目存储在谷歌硬盘中?我建议改为使用GitHub,并使用
    .gitignore
    文件,其中包含
    节点\ u模块
    。我们在主要项目中使用TFS。我想这只是一个例子。此外,当我们做备份硬盘驱动器之类的事情时,处理这么多文件的时间要长得多。这些文件是依赖项,因此,无论您使用什么包管理器,都需要这些文件。你所能做的就是“忽略”同步/备份/任何你使用的工具中的文件夹。如果他们没有这样的支持。。。使用另一个工具。。。或者不要使用reactAh,我明白了。我不知道是否可以将每个项目的所有依赖项都存储在一个位置,但可能值得使用before备份。谢谢@Tholle,这确实有点帮助。而且,我不知道为什么这会被否决这么多,很明显,如果像这样的帖子一开始就存在的话,出于各种原因,这是一些人的担忧。