【问题标题】:only one Node_modules folder for all所有人只有一个 Node_modules 文件夹
【发布时间】:2017-07-31 06:28:56
【问题描述】:

你好,今天我想知道我的所有节点 js 机器人是否只能有一个 node_modules 文件夹,请注意它们不是应用程序形式,只是使用的单个文件..... = require('module');我的观点是,我很容易拥有超过 7 个机器人,我来回改进它们并维护 node_modules 文件夹可能很乏味,有没有一种方法可以让我的所有模块只有一个文件夹,然后...... = 要求('路径/到/node_modules/模块'); 或 .... = require('path/to/node_modules/');有人可以指点我正确的方向吗,因为当我在各种机器人上更新我的代码时,我必须确保模块已安装,我可以只有一个 node_modules 文件夹吗???

【问题讨论】:

  • 对不起,我不得不手动输入地址,因为它在我的树莓派上,所以包含我所有机器人项目的文件夹称为“/home/pi/Desktop/DESKTOP/Bots/ " 在 bot 文件夹中,我有 9 个不同的机器人,它们都有一个 node_modules 文件夹,"看看我的意思",无论如何,我刚刚从其中一个机器人项目中复制了一个 node_modules 文件夹到我的 "/home/pi/Desktop /DESKTOP" 文件夹
  • 我是个白痴.....对不起大家浪费你的时间我使用prntscr.com/g29wqb,即使它以前没有工作过......对不起大家
  • prntscr.com/g29zpe 再次......只有 fs 找不到请帮助

标签: javascript node.js node-modules


【解决方案1】:

我能想到这些不同的选择:

  1. 您可以将所有机器人文件放在同一个目录中,然后从该目录中运行它们,以便所有机器人文件都可以使用该目录中安装的所有模块。

  2. 您可以全局安装所有模块。

  3. 您可以创建一个共享目录来安装所有模块,然后在每次要通过引用该路径加载模块时明确指向该目录。这似乎不太干净,因为模块的每个用户都必须知道从哪里加载它。

  4. 对于您要在项目中使用的每个模块,创建指向模块实际安装位​​置的符号链接。与为每个机器人重新安装模块相比,这似乎并没有节省任何工作。

【讨论】:

  • 我确实尝试过类似的方法,但我遇到了一个问题,说它无法找到“fs”模块,即使它正在识别所有其他模块
  • 我做了 var module = require('path/to/node_module');但我得到了我上面说的那个错误
  • @BenWall - 您必须向我们展示您的代码并描述确切的文件层次结构和要加载的所需文件名,以便我们知道您做错了什么。它可以工作,但我认为这是最不可取的选择。
  • 第四个选项:使用符号链接
  • @GottZ - 是的,符号链接可以工作,但是....使用的磁盘空间量是微不足道的。我认为 OP 试图避免为每个 bot 文件将要使用的每个模块做额外的工作,而手动创建符号链接是做不到的。我将添加符号链接选项。
【解决方案2】:

在另一个文件中说 myLibs.js 你可以这样做

module.exports = {
  lib1: require('lib1'),
  ...
  libn: require('libn')
}

然后在原始文件中你会这样做

var myLibs=require('./myLibs.js');

并通过myLibs.lib1...引用它们

有点笨拙,我知道,但它应该可以工作。

【讨论】:

  • 我应该在哪里制作文件“myLibs.js”
  • 是否可以将 node_modules 文件夹和 myLibs 文件放在一起并像 var myLibs=require('path/to/myLibs.js'); 一样引用它们;
  • 是的,听起来不错。我通常有libs 目录然后使用var myLibs = require('./libs/myLibs.js') 或类似的东西。
  • 对不起,我不得不手动输入地址,因为它在我的树莓派上,所以包含我所有机器人项目的文件夹称为“/home/pi/Desktop/DESKTOP/Bots/ " 在 bot 文件夹中,我有 9 个不同的机器人,它们都有一个 node_modules 文件夹,"看看我的意思",无论如何,我刚刚从其中一个机器人项目中复制了一个 node_modules 文件夹到我的 "/home/pi/Desktop /DESKTOP" 文件夹
  • 我是个白痴.....对不起大家浪费你的时间我使用prntscr.com/g29wqb,即使它以前没有工作过......对不起大家
猜你喜欢
  • 2017-05-24
  • 2019-04-29
  • 2016-12-25
  • 2019-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-05
相关资源
最近更新 更多