2021-06-11 19:27:31
浏览数 (13)
文章目录
- 1、npm 将软件包安装到哪里
-
- 2、如何使用或执行 npm 安装的软件包
1、npm 将软件包安装到哪里
- 当使用 npm 安装软件包时,可以执行两种安装类型:
- 本地安装
- 全局安装
1. 本地安装
- 默认情况下,当输入
npm install 命令时,例如:
代码语言:javascript
复制npm install lodash
- 软件包会被安装到当前文件树中的
node_modules 子文件夹下。 - 在这种情况下,
npm 还会在当前文件夹中存在的 package.json 文件的 dependencies 属性中添加 lodash 条目。 - 使用
-g 标志可以执行全局安装: npm install xxx ,则是将模块下载到当前命令行所在目录。
代码语言:javascript
复制例如:
c:123>npm install xxx
将会安装到
c:123node_modulesxxx
- 这种方式显然是不好的,所以一般都会使用全局安装方式统一安装的一个目录中去,这样既方便管理、结构清晰还可以重复利用。
- 通过
npm config get prefix 来获取当前设置的目录。
2. 全局安装
代码语言:javascript
复制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:UsersYOUAppDataRoamingnpmnode_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:
代码语言:javascript
复制npm install lodash
- 这会把软件包安装到本地的
node_modules 文件夹中。 - 若要在代码中使用它,则只需使用
require 将其导入到程序中:
代码语言:javascript
复制const _ = require('lodash')
- 如果软件包是可执行文件,该怎么办?
- 在这种情况下,它会把可执行文件放到
node_modules/.bin/ 文件夹下。 - 验证这一点的简单示例是
cowsay。 cowsay 软件包提供了一个命令行程序,可以执行该程序以使母牛说些话(以及其他动物也可以说话)。- 当使用
npm install cowsay 安装软件包时,它会在 node_modules 文件夹中安装自身以及一些依赖包:

- 有一个隐藏的
.bin 文件夹,其中包含指向 cowsay 二进制文件的符号链接:

- 如何执行这些文件?
- 可以输入
./node_modules/.bin/cowsay 来运行它,但是最新版本的 npm(自 5.2 起)中包含的 npx 是更好的选择。 只需运行:
代码语言:javascript
复制npx cowsay