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 | { |
请注意,此包的源文件已全部复制到 node_modules
文件夹中
此包现在可以在你的应用程序中使用
1 | const slugify = require("slugify"); |
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 | "dependencies": { |
版本号如下所示(例如 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
不需要对你的代码或开发方法进行任何额外的修改。nodemon
是 Node
的替代包装器。要使用 nodemon
,请在运行脚本时在命令行中替换单词 node
。
用于启动/测试应用程序的示例:
1 | npx nodemon app.js |
仅在开发模式下安装模块
1 | sudo npm install nodemon -D |
也可以全局安装 nodemon
包。这样你就可以在所有的项目中使用 nodemon
以下是安装命令
1 | npm install nodemon -g |
全局安装时使用
1 | nodemon app.js |
相关文章: