为什么节点要全局安装而不是本地安装?

时间:2018-07-09 10:10:22

标签: javascript npm npm-install

因此,我导航到我的项目目录并运行npm install scrollama intersection-observer。它将文件安装在我的HOME / node-modules上,而不是项目文件夹中。但是,在安装过程中会出现警告:

npm WARN saveError ENOENT: no such file or directory, open '[my-home]/package.json'
npm notice created a lockfile as package-lock.json. You should commit this file.
npm WARN enoent ENOENT: no such file or directory, open '[my-home]/package.json'
npm WARN [my-user] No description
npm WARN [my-user] No repository field.
npm WARN [my-user] No README data
npm WARN [my-user] No license field.

那为什么要在全球范围内(或者在我家而不是项目文件夹中)安装它?

2 个答案:

答案 0 :(得分:2)

因为您的文件夹不是有效的npm安装位置,因为它找不到package.json。要创建它,只需运行:

 npm init

答案 1 :(得分:2)

您没有使用npm init。 npm init将初始化您的节点项目并创建一个package.json文件。 package.json文件将存储有关项目的信息,例如项目名称,版本,描述以及您下载的依赖项。 在您的情况下,没有package.json文件,因此,您的软件包已安装到主目录而不是当前目录。

此外,您还可以使用-g之类的参数在不带任何参数的情况下全局安装软件包(到主目录),默认情况下,节点会将软件包安装在当前目录中。

本地安装:您可以在项目内使用该软件包。 全局安装:您可以在任何地方使用该软件包。像nodemon这样的命令是全局安装的,因为您想在每个项目中使用它们。