需要从NPM缓存NPM模块

问题描述:

在OSX/* nix上的~/.npm目录包含NPM缓存,这似乎像这样被结构化:需要从NPM缓存NPM模块

foo/ 
    0.1.2/ 
    1.0.01/ 
    1.3.34/ 
    2.0.1/ 
bar/ 
    0.3.8/ 
    2.1.1/ 
baz/ 
    3.2.1/ 
    4.1.7/ 

我想知道,如果我们可能需要从该目录模块目录。我相信这完全违背了NPM理念,但只是想知道最简单的方法是什么。

我想更改NODE_PATH以使用〜/ .npm目录是可能的,但〜/ .npm目录似乎有不同的结构,所以不知道require()是否可以使用。

我们看到像Yarn新包经理谁试图改善NPM。在我看来,至今为止NPM并不只是使用.npm缓存来引用依赖项(为什么要在项目目录本地重写它们),但是也许有人可以解决这个问题,我仍然困惑不已。

我的最终目标是找到一种方式来获得巨额的依赖像巴贝尔,伊斯坦布尔在一个位置上的磁盘,并参考该位置随处可见(至少在相同的用户)。使用像NVM这样的工具,全局模块位置(npm root -g)会发生变化,所以最好使用$ HOME目录中的某些内容,并且因为.npm高速缓存已经存在,所以它提供了一种可能性。

除了操作NODE_PATH来处理〜/ .npm目录(我只是试过了,〜/ .npm的目录结构似乎排除了这一点),另一种解决方案可能是以编程方式使用npm。

事情是这样的:

const npm = require('npm'); 
npm.load({ 
    loaded: false 
}, function (err) { 
    // catch errors 
    npm.commands.install(['babel','istanbul'], function (er, data) { 
    // log the error or data 
    }); 
    npm.on('log', function (message) { 
    // log the progress of the installation 
    console.log(message); 
    }); 
}); 
+0

如果你有一个'项目/目录,你可以在该目录中的'node_modules'并包含一个'需要()'在父母的'node_modules' *模块应该*能够访问每一个子目录中安装的东西它(请参阅[Node文档](https://nodejs.org/api/modules.html#modules_loading_from_node_modules_folders))。这是否接近您所需要的,或者您是否特意要缓存成为源代码? – Aurora0001

我一直在问自己同样的问题。如果我有一个package.json以及我需要的所有依赖关系以及我需要的所有依赖关系,那么为什么我需要再次执行该操作并将自己弄糊涂并导致“配置疲劳”? 有一种方法,我敢肯定,但每次我试图要么使用package.json或从任何地方访问的webpack.config.js但预定位置时,我建立了它,它不部分或全部无效。

另外,樱桃挑选出你node_modules文件夹的内容可能导致奇怪的问题,所以我不乱用往心里去。

只需使用:

NPM安装[依赖,开发工具,和你需要什么]

,你应该是甜的。

无需具有正在传递您的最佳CONFIGS - 只是保持你的NPM手头上安装命令复制和粘贴的意愿。

+0

干得好你的第一个答案!我刚刚对格式化做了一些调整,并删除了一些有切点的评论,但除此之外,这是一个有趣的解释。确保你看看我改变了什么,这样你就可以看到网站上的预期情况,所以你的问题可以被其他人收到。 – Aurora0001