Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.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 ReactNative:是否可以避免将所有依赖项存储在节点\模块子文件夹中_Node.js_Npm_React Native_Node Modules - Fatal编程技术网

Node.js ReactNative:是否可以避免将所有依赖项存储在节点\模块子文件夹中

Node.js ReactNative:是否可以避免将所有依赖项存储在节点\模块子文件夹中,node.js,npm,react-native,node-modules,Node.js,Npm,React Native,Node Modules,我对ReactNative很陌生,如果这是显而易见的,很抱歉,但是 通过CLI初始化的每个RN项目都有大量节点模块存储在项目根/节点模块中。我并不介意,但如果您有几个项目,那么将其移动到源版本控制系统似乎是多余的,并且会占用时间/空间 难道不可能从计算机上的常规节点模块中检索所有这些相同的模块吗?您永远不希望在源代码管理中存储嵌套在节点模块中的依赖项。。。它总体上违背了版本控制和依赖性的全部目的。您的package.json文件将指定版本,以便在运行npm install时,它确切地知道要获取哪

我对ReactNative很陌生,如果这是显而易见的,很抱歉,但是

通过CLI初始化的每个RN项目都有大量节点模块存储在项目根/节点模块中。我并不介意,但如果您有几个项目,那么将其移动到源版本控制系统似乎是多余的,并且会占用时间/空间


难道不可能从计算机上的常规节点模块中检索所有这些相同的模块吗?

您永远不希望在源代码管理中存储嵌套在节点模块中的依赖项。。。它总体上违背了版本控制和依赖性的全部目的。您的package.json文件将指定版本,以便在运行npm install时,它确切地知道要获取哪些依赖项

作为替代方案,是Facebook开发的一个新兴的包客户端,它在本地缓存包方面做得更好,这样,如果多个项目重用相同的依赖项,它仍然可以满足将它们保留在节点_模块中的需要,但不需要对每个模块执行http请求

Thread并没有取代NPM作为软件包注册中心,它只是一个下载、维护和缓存这些软件包的更好的客户端

纱线还添加了一个类似于Ruby的Gemfile.lock的纱线.lock文件,允许您锁定应用程序中使用的特定版本,即package.json的regardles,这可能是您希望通过在版本控制中保存node_模块来实现的

一些好书

耶胡卡茨
我会附和Brad的回答:不要将node_模块置于版本控制中。npm install将从package.json安装正确的版本。只需将package.json放在版本控制中,而不是节点模块中

但是,如果仍要节省磁盘空间,可以使用链接选项将某些依赖项安装到常规节点\模块文件夹中:

您可以在此处阅读有关链接的更多信息:


请注意,在使用此选项时,您不能在版本控制中包括node_模块,因为npm将在node_模块中放置指向全局安装包的符号链接。全局安装位置因机器而异,因此如果节点模块处于版本控制中,它可能会链接到不存在的位置。

根据您的VCS,您应该将其配置为忽略节点模块文件夹(例如Git is.gitignore文件),并仅保留文件package.json。任何拥有package.json的人都可以在他们的机器上获取相同的依赖项。
npm config set link true -g