我有一个需要在运行时下载npm软件包的应用程序。这一切都运行良好,直到我们将应用程序作为快照部署到Ubuntu Core。这使原始应用程序保留在写保护区域,并且所有运行时安装的软件包都位于主目录中(〜/ home / use / node_modules )。这就是问题所在:(
由于我希望保留应用程序(尽可能多),我不想创建自己的 require 方法,而只是在启动时添加主目录的路径应用程序(使用 process.env.NODE_PATH )。
然后原始应用程序能够加载运行时安装的软件包,但这些软件包无法在任何地方找到其他软件包(不在它自己的node_modules文件夹中,也不能在根目录中)。
如果我在添加 process.env.NODE_PATH 变量的路径后尝试从磁盘的不同部分请求包,我认为我得到相同的问题(症状是相同的)
问题:有没有更好的(工作)方法来解决这个问题,而不会覆盖require方法?
BTW ..我也尝试过使用 app-module-path 包,但结果相同。
答案 0 :(得分:1)
您是否尝试过从应用程序目录创建符号链接? NPM包可能尝试使用相对于您的应用程序的路径,因为这是它们的上下文。如果您创建从./node_modules
到~/home/use/node_modules
的符号链接,则可能会有效。