使用npm在本地和全局安装软件包有什么区别?

时间:2017-01-16 13:12:53

标签: node.js npm

使用npm在本地和全局安装软件包有什么区别?

根据我的理解:

本地安装:npm install< package>

  1. 此软件包/模块可在本地node_modules文件夹中找到 只能用于这个项目。
  2. 可以使用require(" package")访问此包/模块 来自代码。
  3. 无法在命令行界面访问此程序包/模块。
  4. 全球安装:npm install< package> -g

    1. 此软件包/模块将在您的机器中找到安装节点的位置,例如/ usr / local,并且可以在任何地方使用。
    2. 使用require(" package")无法访问此包/模块 来自代码。
    3. 可以在命令行界面访问此程序包/模块。
    4. 请告诉我。如果我可以在这里误解任何事情。谢谢!

2 个答案:

答案 0 :(得分:2)

除了1分,你是正确的。

可以从命令行访问公开CLI实用程序的本地程序包。较新版本的NPM在本地.bin/内创建此node_modules/目录 每当您尝试使用工具时(例如,让我们使用babel),如果您从命令行使用它并将它安装在项目中,npm将正确识别该包并运行它的CLI对你而言。

这是一篇关于该主题的有用文章。

http://www.2ality.com/2016/01/locally-installed-npm-executables.html

答案 1 :(得分:0)

全局模块主要是gulp,yoman或您在日常工作中使用的任何其他模块。

本地模块是项目的依赖项。您永远不应该依赖项目中的全局模块。甚至作为gulp的依赖项也应该是dev-dependency部分中的本地依赖项。