您可以阻止node.js在本地安装软件包吗? (使用全局包)

时间:2020-08-03 02:42:04

标签: node.js npm node-modules require

我一直在从事许多不同的node.js项目。它们所有人都有自己的package.json文件和所需的软件包。每次我运行node <mainfile>.js时, npm 都会将所有软件包安装到项目目录中。像这样:C:/Users/me/Projects/<project-name>/node_modules

这不是一个很大的问题,但是有没有办法使 npm 使用/安装到 global 软件包?像C:/Users/me/node_modules中一样? 我可以看到的优势之一是占用的存储空间更少,尽管这并不是一个巨大的优势。

我认为,如果可能的话,它将要求您在package.json文件中添加/修改某些内容。

在寻找这个问题的答案时,我看到有人说您应该避免在全球范围内安装软件包。您还能解释为什么这是一种不好的做法,以及为什么我应该避免这种做法吗?

2 个答案:

答案 0 :(得分:1)

全局安装软件包

NPM将全局软件包安装到// local / lib / node_modules文件夹中。

在install命令中应用-g全局安装软件包。

npm install -g express

回答其他问题

显而易见的简短答案是您的项目取决于它们。如果你的 项目取决于软件包,应记录在package.json中 这样您可以保证有人输入npm时已安装 安装。否则,您需要在自述文件中添加其他步骤 告知其他克隆您的项目的人他们需要 同时安装每个全局依赖项

最后,即使有人安装了正确版本的Browserify 对于您的项目,他们可能正在从事其他项目, 需要使用同一工具的不同版本,这会导致 冲突。您自己的几个项目甚至可能使用不同的项目 版本的Browserify,因为您在启动新版本时已对其进行了更新 项目,并且没有回过头来确保以前的项目是 更新以使用新版本。这些冲突是可以避免的。

您只能在全局安装一个版本。如果您有依赖于不同版本的程序包的不同项目,则会导致问题。

答案 1 :(得分:1)

为什么不全局安装所有软件包

并不是您不应该在全球范围内安装软件包,而是更多地知道要在全球范围内安装哪些软件包。全局安装的软件包是您的项目/应用程序不依赖的软件包。

如何识别我的项目所依赖的软件包

项目所依赖的软件包是没有<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="button-wrapper"> <button type="button" disabled="disabled" class="noofpax decreasepax">-</button> <input id="txtnoofpax" type="text" value="5"> <button type="button" class="noofpax increasepax">+</button> </div> <div class="package-amount"><span>$</span><span class="amount">6,300</span></div> <div class="fee-info--amount"> <div class="fee-info"> <div class="info">Every pax cost $<span class="per-person-cost">1,200</span></div> </div> <div class="fee-amount"> <div class="perperson-amount"> <span>$</span><span class="amount">0</span> </div> </div> </div> <div class="grand-total"> <p>Total Payable Amount</p> <div class="fee-amount"><span>$</span><span class="amount">6,300</span></div> </div>axios之类的应用程序就无法运行的软件包(express API不能在没有安装Express或Web的情况下运行发出带有express的API请求的页面不能发出没有axios的那些请求,但是运行该应用程序不需要axioshttp-server之类的东西,因此可以全局安装。

为什么在本地安装软件包很重要

这是重要的/良好的做法,因为如果您正在与一群开发人员一起工作或某人从Github获得工作,他们可以运行minify并获取所有软件包,而不必查找他们自己的所有软件包。

如何删除节点模块文件夹

从技术上讲,您可以在全球范围内安装每个软件包,但我建议不要安装。 Node和其他许多开发人员都知道这是他们为“节点杀手”创建的解决方案。

我建议您不要全局安装所有软件包,如果节点模块文件夹确实使您烦恼,请尝试表示它可以解决节点开发人员讨厌的许多问题。