[英]Globally installed packages are still being installed locally
我只在我的开发环境中使用node.js工具(即devDependencies,生产中没有任何东西) - 例如grunt,uglify,sass,bower等。
我管理了很多项目,每个项目都使用完全相同的工具。 此外,我经常移动这些项目,包括压缩它们,将一些项目放入Dropbox等。
通常,每个项目中node_modules文件夹的大小正在成为一个bug - 我的PC有时会在删除它时冻结,在我意识到我忘记首先删除node_modules等之前,档案最终会大量存档。
据我所知,我可以全局安装节点包(使用npm install -g <package>
),如果正确的包全局可用,当我运行时,npm不需要在我的每个项目的npm_modules文件夹中再次安装它npm install
。
我理解正确吗?
如果是这样,这对我来说似乎不起作用:
npm install -g bower
cd
到项目文件夹和npm install
在我的package.json中,我的bower依赖关系如下所示:
"devDependencies": {
"bower": "^1.7.7",
我尝试将其设置为“*”并重复上述步骤,以防npm尝试确保只有某个版本可用,但我得到了相同的结果。
我理解管理依赖关系的重点是不同版本的包可以在不同的项目中使用; 在我的情况下,因为我只使用devDependencies,我很高兴使用相同/最新版本的所有内容,因为我知道它一切都可以正常部署。
你可能会说,我对node.js很新。 我是否正确理解了这是如何工作的? 或者我是以错误的方式去做的?
如果它是相关的,我在Windows 10上并使用Git Bash(它似乎基于MinGW)。
在我看来,你正在以正确的方式做事。 我倾向于回避全球安装npm模块。 如您所述,这使您的项目非常便携。 所有依赖项都在本地目录中捕获。 你可以压缩整个东西,把它放在Dropbox或任何地方,你知道它拥有一切。
我很惊讶您的项目目录包括node_modules是如此之大,以至于您注意到性能问题。 如果确实如此,我会仔细检查你的package.json中没有任何未使用的依赖项。 如果您担心项目中安装了不在package.json(安装ad hoc)中的deps,则可以删除node_modules目录并重新运行npm install
。 您总是希望package.json成为项目代表的准确列表。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.