一、什么是npm
Npm(Node Package Manager)
是一个用于管理和共享JavaScript
代码包的包管理器。它是Node.js的默认包管理工具,也是世界上最大的软件注册表之一。下面从不同的角度来详细介绍Npm包管理器。
1. 功能与用途:
- 包安装与管理:Npm允许用户通过命令行安装、更新和卸载已发布的包。只需简单的一行命令,就可以轻松获取所需的依赖包。
- 依赖管理:在Node.js项目中,有很多第三方包是互相依赖的。Npm可以自动解析并管理这些依赖关系,确保项目能够正确运行。
- 版本管理:Npm支持语义化版本规范(Semantic Versioning),可以通过范围操作符来指定所需的包版本。这使得开发者可以灵活地选择适合项目的版本,同时保持向后兼容性。
- 脚本执行:Npm允许在项目的package.json文件中定义各种脚本命令,用于简化开发过程中的常见任务,如构建、测试、部署等。
2. 下载和安装
我们在安装node的时候,其实也一起安装了npm,可以使用
npm -v
来查看当前的npm版本
二、npm 的常用命令介绍
我们使用
npm --help
npm为我们提供了哪些可以使用的命令
如上图、两个红色框中的都是npm为我们提供的命令,这里我们就看看那些常用命令吧
npm 的一些常用命令:
1. npm init:创建一个新的 package.json 文件
在初始化一个新项目时使用。该命令会询问一些项目的配置信息,比如名称、版本、描述等。
package.json文件通常包含以下主要属性:
- name:项目的名称。
- version:项目的版本号。
- description:项目的描述。
- main:指定项目的入口文件。
- scripts:定义一系列的命令脚本,用于执行不同的任务,比如编译、打包、测试等。
- keywords:关键词,用于将项目添加到npm的搜索中。
- author:项目的作者。
- license:项目的许可证信息。
- dependencies:项目依赖的生产环境库。这些库会在打包发布时被包含进去。
- devDependencies:项目依赖的开发环境库。这些库用于开发和构建项目,不会被包含进最终的打包发布中。
- peerDependencies:项目所依赖的其他库的版本约束条件。
- browserslist:定义项目的目标浏览器列表,用于自动适配浏览器的兼容性。
除了上述属性外,package.json文件还可以包含其他自定义的属性和配置项。例如,一些前端工具(如Babel、Webpack等)会在package.json中添加特定的配置项,用于配置工具的行为和功能。
2. npm install:安装项目所需的所有依赖模块
如果 package.json 文件存在,会根据其中的依赖信息来安装相应的模块。
npm install
例如:npm install express
安装 Express 模块。
此外,从 npm 5 开始,此命令将 添加到 package.json 文件依赖。 在版本 5 之前,你需要添加标志 --save。
通常你会看到更多的标志被添加到这个命令中:
--save-dev
安装并添加条目到 package.json 文件开发依赖--no-save
安装但不添加条目到 package.json 文件依赖--save-optional
安装并添加条目到 package.json 文件可选依赖--no-optional
将阻止安装可选依赖
也可以使用标志的简写形式:
- -S:–save
- -D:–save-dev
- -O:–save-optional
devDependencies
和 dependencies
之间的区别在于前者包含开发工具,如测试库,而后者与生产中的应用打包在一起。
3. npm install :安装指定的模块。
可以通过模块的名称,或者以 @
符号指定模块的版本。
例如:npm install lodash
安装最新版本的 lodash 模块。
`npm install lodash@4.17.20` 安装 lodash 的指定版本。
4. npm uninstall :卸载指定的模块。
例如:npm uninstall express
卸载 Express 模块。
5. npm update:更新项目依赖的模块。
会检查 package.json 文件中依赖模块的最新版本,并进行更新。
6. npm run
{
"scripts": {
"start-dev": "node lib/server-development",
"start": "node lib/server-production"
}
}
使用这个特性来运行 Webpack 是很常见的:
{
"scripts": {
"watch": "webpack --watch --progress --colors --config webpack.conf.js",
"dev": "webpack --progress --colors --config webpack.conf.js",
"prod": "NODE_ENV=production webpack -p --config webpack.conf.js"
}
}
因此,不用输入那些很容易忘记或输入错误的长命令,你可以运行
$ npm run watch
$ npm run dev
$ npm run prod
7. npm search :搜索模块。
可以根据模块名来搜索可用的模块。
例如:npm search express
搜索名为 “express” 的模块。
8. npm outdated:检查过时的模块。
例如:npm outdated
将列出当前项目中已经过时的模块。
9. npm publish:将自己开发的模块发布到 npm 上。
例如:npm publish
发布当前项目为一个 npm 模块。
10. npm config:配置 npm 的各种选项。
例如:npm config get registry
获取配置项 registry 的值。
这些是 npm 的一些常用命令,可以帮助开发者更方便地管理和使用 Node.js 模块。