使用npm,JavaScript开发人员可以发现代码包并将其安装到他们的网络应用程序或服务器端项目中。
node.js包是一个目录,其中包含一个或多个JavaScript模块或库,用于向应用程序或脚本添加各种功能。如果没有包,开发人员或软件工程师必须为其项目所需的每个功能编写新代码。
本文将解释npm的工作原理,并教你如何使用它启动项目并安装额外的包。
什么是npm?
Node包管理器 (npm) 是世界上最大的软件注册中心之一。它与开源服务器环境node.js捆绑在一起。
npm是如何工作的?
以下是npm的三个定义角色:
- 存储库——npm是一个广泛使用的存储库,用于发布开源Node项目,开发人员可以在其中与其他npm用户共享他们的源代码。Angular、React和jQuery是您可以从npm存储库下载的一些包。
- 命令行界面 (CLI) – 开发人员从终端或命令行工具运行npm CLI来安装或卸载包并管理版本或依赖项。
- 注册表——您使用npm CLI安装的任何包或模块都是从JavaScript软件数据库npm公共注册表下载的。
什么是package.json?
每个npm项目都包含package.json,一个位于根目录的文件。它包含npm项目或包的元数据,例如包版本和贡献者。
package.json文件简化了包的识别、管理和安装。这就是为什么在npm注册表上发布项目之前必须包含package.json的原因。
以下是package.json文件包含的示例:
{ "name": "hostinger-npm", "version": "1.0.0", "description": "npm guide for beginner", "main": "beginner-npm.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "dependencies": { "express": "^4.17.1" }, "repository": { "type": "git", "url": "https://github.com/hostinger/example.git" }, "keywords": [ "npm", "example", "basic" ], "author": "Hostinger International", "license": "MIT", }
为了帮助您理解package.json,我们将回顾上一个示例中最重要的几行:
"name": "hostinger-npm",
上面的行定义了包名。它应少于 214 个字符并且仅由小写字母组成。如果你想在 npm 注册表上发布一个工具,它的名称应该不同于任何现有的包。
"version": "1.0.0",
版本指定项目的当前版本,它应该遵循语义版本控制规则。
"description": "npm guide for beginner",
在描述行中包含包信息,以帮助用户在npm注册表中发现您的项目。
"main": "beginner-npm.js",
main字段指定项目的入口点或主文件。如果此属性留空,npm 将自动将其值设置为index.js。
"scripts": { "test": "echo \"Error: no test specified\" && exit 1" },
scripts属性包含为您的项目运行任务的命令。npm 用户可以利用此字段将参数传递给 CLI,而无需重新键入它们。
"dependencies": { "express": "^4.16.4" },
该字段列出了项目中使用的所有依赖项(dependencies)或包。当您使用
"repository": { "type": "git", "url": "https://github.com/hostinger/example.git" },
存储库属性包含源代码的URL。在此示例中,GitHub是包位置,Git是版本控制系统。
"keywords": [ "npm", "example", "basic" ],
该字段包含一系列与包的功能相关的关键字,帮助npm用户通过搜索找到包。如果您不会在npm注册表上发布项目,请忽略此属性。
"author": "Hostinger International",
使用author属性来声明项目的创建者。
"license": "MIT",
这一行定义了npm项目的许可证,让人们知道他们是否可以不受任何限制地使用它。
关于package.json的其他字段,请参考package.json的官方文档。
什么是依赖项和devDependencies?
Dependencies和devDependencies是package.json中列出项目依赖的所有包的字段。
依赖项字段包括项目运行所需的所有第三方包。
另一方面,devDependency属性包含仅在开发过程中需要的包。
依赖项和devDependencies是通过npm install
命令与--save
和--save-dev
。
如何安装npm模块并启动项目?
在使用npm之前,请确保已安装node.js。为此,请打开终端并运行以下命令:
node -v
终端窗口应显示系统上安装的node.js版本:
V14.17.5
使用以下命令对npm执行相同操作:
npm -v
它还应该返回这样的版本号:
6.14.14
如果尚未安装node.js,请从官网下载。
在接下来的部分中,我们将讨论一些基本的npm命令。
使用npm初始化项目
要启动一个新项目,请从npm CLI运行以下命令:
npm init
此命令将在当前目录中创建项目的package.json文件。
运行npm init
命令,终端将显示此信息:
This utility will walk you through creating a package.json file. It only covers the most common items, and tries to guess sensible defaults. See `npm help init` for definitive documentation on these fields and exactly what they do. Use `npm install <pkg>` afterwards to install a package and save it as a dependency in the package.json file. Press ^C at any time to quit. package name: (test-npm)
系统会提示您按以下顺序输入项目信息:
- Package name
- Initial version
- Description
- Entry point
- Test command
- Git repository
- Keywords
- Author
- License
回应每一个npm init
通过在按Enter之前键入自定义值来提示。或者,在不输入任何内容的情况下按 Enter以保留默认值或括号中的值。
以下是我们如何填写包裹信息的示例:
name: (test-npm)hostinger-npm version: (1.0.0)1.0.0 description: npm guide for beginner entry point: (index.js) beginner-npm.js test command: git repository: keywords: npm, example, beginner author: Hostinger International license: (ISC) MIT
输入所有项目详细信息后,npm init
将显示package.json文件的预览,如下所示:
{ "name": "hostinger-npm", "version": "1.0.0", "description": "npm guide for beginner", "main": "beginner-npm.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "npm", "example", "beginner" ], "author": "Hostinger International", "license": "MIT", } Is this OK? (yes)
键入yes并按Enter保存package.json文件。您可以稍后通过编辑文件或再次运行npm init
命令。
如果要生成带有默认值的package.json文件而不响应npm init
提示,使用此命令:
npm init --yes
npm将使用默认值创建一个package.json文件,如下所示:
{ "name": "mymac-MacBok-Pro", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
创建package.json文件后,您可以将任何节点包添加到项目中。
在你的项目中安装npm模块
在开始使用npm时,学习如何安装包是必不可少的。
要将包添加到您的项目,请运行以下任一命令:
npm install <package-name> // OR npm i <package-name>
提示:在上面的命令中,替换为您要安装的模块的名称。
例如,如果你想安装express,一个流行的web框架,它简化了标准的web开发过程,使用下面的命令:
npm install express
此命令将在根项目目录的node_modules文件夹中安装express模块。注意node_modules只会在安装第一个包后出现。
如果软件包安装成功,终端将显示如下消息:
package.json还将在dependencies
字段中包含模块:
{ "name": "hostinger-npm", "version": "1.0.0", "description": "npm guide for beginner", "main": "beginner-npm.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "npm", "example", "basic" ], "author": "Hostinger International", "license": "MIT", "dependencies": { "express": "^4.17.1" } }
将软件包安装为开发依赖项
要安装仅在开发环境中使用的任何工具,请使用以下命令:
npm install <package-name> --save-dev
例如,您可能希望在任何文件更改时使用nodemon重新加载您的项目。要安装此工具,请在终端中键入:
npm install nodemon --save-dev
安装nodemon后,终端将显示以下消息:
npm还将添加devDependencies
开发依赖package.json文件中包含新数据的部分,如下所示:
{ "name": "hostinger-npm", "version": "1.0.0", "description": "npm guide for beginner", "main": "beginner-npm.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ "npm", "example", "basic" ], "author": "Hostinger International", "license": "MIT", "dependencies": { "express": "^4.17.1" } "devDependencies": { "nodemon": "^2.0.12" } }
在您的系统上全局安装模块
如果您想从命令行安装要使用的 npm 包,请输入以下任一命令:
npm install <package-name> --global // OR npm i <package-name> -g
务必更换<package-name>
与模块名称。
更新npm
为了保证您的代码和工具的安全和稳定,请定期更新从npm注册表下载的本地和全局包。
在更新任何npm包之前,请检查它们是否已过时。您可以通过从根目录运行以下命令来检查项目或系统中的哪些npm包有可用更新:
npm outdated
要检查系统中过时的全局包,请运行以下命令:
npm outdated -g --depth=0
获取过时模块列表后,您可以更新所有包或仅更新其中一个包。
要更新项目中的所有包,请从命令行运行:
npm update
要更新单个模块,请输入:
npm update <package-name>
记得更换<package-name>
使用要更新的包的名称。
要更新系统中的所有全局包,请运行以下命令:
npm update -g
为了更新单个全局包,输入以下命令,替换<package-name>
使用模块名称:
npm update -g <package-name>
要更新Node包管理器本身,请运行以下命令:
npm install npm@latest -g
安装最新版本的npm后,终端窗口将显示如下消息:
对于其他npm CLI命令,请查看npm的命令文档。
小结
npm是一个流行的包管理器,它让JavaScript开发人员可以快速轻松地共享和部署有用的包。
每个npm项目在其根目录中都包含一个名为package.json的文件。该文件包含项目的元数据,任何人都可以在npm存储库中找到该模块。
除了包含关键项目信息之外,package.json还存储项目运行所需的项目依赖项列表。
此外,开发人员在开发过程中为帮助他们而安装的软件包将包含在devDependencies下的package.json中。
以下是npm命令的概述,可帮助您开始使用此包管理器执行基本任务:
- 检查npm版本:
npm -v
- 初始化一个项目:
npm init
- 安装模块:
npm install <package-name>
- 安装一个包作为开发依赖:
npm install <package-name> --save-dev
- 在系统上全局安装一个模块:
npm install <package-name> --global
- 更新项目中的所有包:
npm update
- 更新最新版本的npm:
npm install npm@latest -g
我们希望本文能帮助您了解什么是 npm,并提供一些关于如何开始使用它的指导。
评论留言