使用 Javascript 创建后端(5):Node 包管理器(NPM)

NPM(Node 包管理器)

你想创建 NodeJS 函数或模块吗?为什么要重新发明轮子?很有可能,你想要编码的函数已经由另一位开发人员创建。

NodeJS 允许你使用社区创建的库。为此,有一个名为 NPM(Node 包管理器)的工具,它允许你下载、安装和管理这些包。

NPM 已预装 NodeJS。它是一个命令行应用程序,可让你安装你选择的包。

网站 https://www.npmjs.com 包含可通过 NPM 获得的所有包的列表。有超过一百万个。

NPM 提供了一个系统,允许管理已安装的包及其版本。此管理是在名为 package.json 的文件的帮助下完成的

package.json 文件是我们应用程序所独有的,包含我们项目的“依赖项”列表。也就是说,所有已安装软件包及其版本的列表。

此文件还包含有关你的项目的其他信息,例如名称、作者和启动文件(Node.js 将运行的第一个文件)。还可以创建“脚本”命令来启动某些功能,例如启动服务器或编译和执行项目。

你可以手动创建此 package.json 文件,也可以运行 NPM 命令来自动执行此操作

1
$ npm init

此命令将询问几个问题。只需使用默认答案,它就会创建文件 package.json

请注意,如果你在安装第一个包时没有创建 package.json 文件,NPM 将自动为你创建该文件。

我们现在要安装我们的第一个名为“slugify”的包。这个包是一个小工具,用于从字符串创建适合网络的 URL。例如,“欢迎来到我的家”将变成一个适合网络的用户友好 URL:welcome-to-my-home

要安装包,请在终端中输入以下命令:

1
npm install slugify

一旦软件包安装完毕,你可以查阅 package.json 文件,你会在“依赖项”列表下找到“slugify”软件包:

1
2
3
4
5
{
"dependencies": {
"slugify": "^1.6.0"
}
}

请注意,此包的源文件已全部复制到 node_modules 文件夹中

此包现在可以在你的应用程序中使用

1
2
3
4
const slugify = require("slugify");

console.log(slugify("My New Web Site"));
// My-New-Web-Site

NPM 还可以全局安装软件包,以便计算机上的任何 Node.js 应用程序都可以导入和使用已安装的软件包。NPM 将全局软件包安装在 //local/lib/node_modules 文件夹中。

在安装命令中添加 -g 以全局安装软件包。

1
$ npm install create-react-app -g

大多数情况下,你需要管理员权限才能全局安装软件包。在这种情况下,请使用 sudo 命令(在 Mac 上)

1
$ sudo npm install create-react-app -g

版本管理

我们可以在 package.json 文件中看到包的版本号

1
2
3
"dependencies": {
"slugify": "^1.4.7"
}

版本号如下所示(例如 1.4.7):

  • 主版本 (1):具有重大更改的新版本
  • 次版本 (4):具有新功能但没有重大更改
  • 补丁版本 (7):仅修复错误
  • 版本前缀:^ 1.4.7:接受次版本更新 ~ 1.4.7:仅接受补丁版本的更新
  • 1.4.7:接受所有版本更新(不推荐)

更新软件包

1
npm update slugify

此命令将安装已接受的更新(如果当时存在)

卸载软件包

1
npm uninstall slugify

node_modules 文件夹

当你安装包时,包的内容将安装在此文件夹中。如果你删除此文件夹,可以通过运行以下命令重新创建它:

1
$ npm install

此命令将重新安装文件 packages.json 中列出的所有软件包

此命令对于从同事或 Github 复制应用程序时安装软件包很有用。因为当你这样做时,node_modules 文件夹永远不会提供。所以你需要此命令来重新创建它。

Node 包执行 (NPX)

npx 代表 Node Package execute。它是专门为执行包而设计的工具。当你使用此工具启动包的执行时,npx 将在计算机的 PATH 变量中查找,然后在项目模块的二进制文件中查找以启动命令。如果找不到,该工具甚至可以在网上找到命令,然后执行它。

包在当前目录中执行。npx 还可以用于 packages.json 文件的“脚本”部分,以便在启动时放入启动服务器或平台的命令。

使用 npx 启动包

1
npx creat-react-app my-app`

nodemon 包

当你开发 NodeJS 应用程序时,每次修改代码时都必须停止服务器并重新启动应用程序。这非常浪费时间。

幸运的是,有一个工具可以解决这个问题:nodemon

nodemon 是一种帮助开发基于 Node.js 的应用程序的工具,当检测到目录中的文件更改时,它会自动重新启动 Node 应用程序。

nodemon 不需要对你的代码或开发方法进行任何额外的修改。nodemonNode 的替代包装器。要使用 nodemon,请在运行脚本时在命令行中替换单词 node

用于启动/测试应用程序的示例:

1
$ npx nodemon app.js

仅在开发模式下安装模块

1
$ sudo npm install nodemon -D

也可以全局安装 nodemon 包。这样你就可以在所有的项目中使用 nodemon

以下是安装命令

1
$ npm install nodemon -g

全局安装时使用

1
$ nodemon app.js

相关文章: