npm 安装包的路径在哪里

兮动人
发布
于
2021-06-11 19:27:31
发布
于
2021-06-11 19:27:31
文章目录
1、npm 将软件包安装到哪里
- 当使用 npm 安装软件包时,可以执行两种安装类型:
- 本地安装
- 全局安装
1. 本地安装
-
默认情况下,当输入
npm install
命令时,例如:
npm install lodash
-
软件包会被安装到当前文件树中的
node_modules
子文件夹下。 -
在这种情况下,
npm
还会在当前文件夹中存在的package.json
文件的dependencies
属性中添加lodash
条目。 -
使用
-g
标志可以执行全局安装: -
npm install xxx
,则是将模块下载到当前命令行所在目录。 c:\123>npm install xxx 将会安装到 c:\123\node_modules\xxx
- 这种方式显然是不好的,所以一般都会使用全局安装方式统一安装的一个目录中去,这样既方便管理、结构清晰还可以重复利用。
-
通过
npm config get prefix
来获取当前设置的目录。
2. 全局安装
npm install -g lodash
-
在这种情况下,
npm
不会将软件包安装到本地文件夹下,而是使用全局的位置。 -
npm install xxx -g
时, 模块将被下载安装到【全局目录】中。【全局目录】通过npm config set prefix "目录路径"
来设置。 -
通过
npm config get prefix
来获取当前设置的全局目录。

在这里插入图片描述
- 全局的位置到底在哪里?
-
npm root -g
命令会告知其在计算机上的确切位置。 - 如下是我重新配置的全局安装路径,详情请访问: npm 设置全局变量安装路径及环境配置

在这里插入图片描述
-
在 macOS 或 Linux 上,此位置可能是
/usr/local/lib/node_modules
。 在 Windows 上,可能是C:\Users\YOU\AppData\Roaming\npm\node_modules
。 - 如:我云服务器上的全局安装路径

在这里插入图片描述
-
但是,如果使用
nvm
管理Node.js
版本,则该位置会有所不同。 -
例如,使用
nvm
,则软件包的位置可能为/Users/joe/.nvm/versions/node/v8.9.0/lib/node_modules
。
2、如何使用或执行 npm 安装的软件包
-
当使用
npm
将软件包安装到node_modules
文件夹中或 全局安装 时,如何在Node.js
代码中使用它? -
假设使用以下命令安装了流行的 JavaScript 实用工具库
lodash
:
npm install lodash
-
这会把软件包安装到
本地的
node_modules
文件夹中。 -
若要在代码中使用它,则只需使用
require
将其导入到程序中:
const _ = require('lodash')
- 如果软件包是可执行文件,该怎么办?
-
在这种情况下,它会把可执行文件放到
node_modules/.bin/
文件夹下。 -
验证这一点的简单示例是
cowsay
。 -
cowsay
软件包提供了一个命令行程序,可以执行该程序以使母牛说些话(以及其他动物也可以说话)。