一、npm是什么
npm(Node Package Management)是Node.js的包管理器。提供了方便的方式来安装、更新和卸载包,特别是在构建JavaScript应用程序时。npm是全球最大包管理系统,甚至在前端圈内发挥着非常重要的作用。通过npm可以安装各种工具、组件、库等,它们可以极大地加快我们的工作速度,并且可以有效避免手工编写和配置。
二、npm的安装
npm的安装比较简单,绝大多数会使用Node.js的开发者都会使用npm。npm集成在Node.js中,因此在安装Node.js时,npm也会一并被安装。
$ node -v v14.15.0 $ npm -v 6.14.8
如果你尚未安装Node.js,请前往Node.js官网(https://nodejs.org/zh-cn/download/)下载安装包,选择适合你的操作系统即可。
三、使用npm安装包
npm提供了非常方便的方式来管理开发中使用的库以及工具。我们可以使用npm install命令来安装我们需要使用的包。
1. 全局安装
如果我们需要在命令行下全局使用安装的包,则需要使用-g或--global选项。使用全局安装的包会被安装在全局node_modules文件夹下,而且是公共的,其它项目也可以使用。例如:
$ npm install -g webpack
以上命令安装webpack到默认目录中(/usr/local/lib/node_modules),这样我们就可以在任意地方运行webpack命令了。
2. 本地安装
如果我们需要在项目中使用安装的包,则需要在项目的根目录下执行npm install命令。默认情况下,这些包会被安装在node_modules子目录下,并且每个项目都有自己的node_modules文件夹,并且不共享。例如:
$ npm install webpack
以上命令将webpack安装到当前项目文件夹下,我们可以在项目中通过require来使用webpack。
3. 安装指定版本的包
npm可以安装指定版本的包。我们可以在package.json文件中配置dependencies属性来指定包的版本,例如:
{ "name": "my-project", "dependencies": { "webpack": "^5.0.0" } }
以上的package.json文件配置指示npm安装的是webpack 5.0.0或以上的版本。^表示安装大于或等于5.0.0的版本,但是小于6.0.0的版本。我们可以修改package.json来指定其他版本。
4. 安装开发依赖
在项目的开发过程中,有些包只需要在开发环境中使用,不需要在生产环境中使用。我们可以在package.json文件中使用devDependencies属性来指定这些依赖,例如:
{ "name": "my-project", "devDependencies": { "webpack": "^5.0.0" } }
以上的package.json文件配置指示npm安装的是webpack 5.0.0或以上的版本,但只作为开发依赖使用。npm install命令将安装该依赖,但是在npm install --production命令中将不会安装该依赖。
5. 安装多个包
我们可以在一次npm install命令中安装多个包。例如:
$ npm install webpack vue typescript
不同的库之间用空格隔开即可。
四、npm常用命令
1. npm init
npm init命令可以创建一个新的package.json文件,用于管理项目的依赖。执行该命令后,npm会提醒我们回答一些问题来生成配置文件。例如:
$ npm init
2. npm install
npm install [package name]命令可以安装一个或多个包。默认会将包安装到当前目录下的node_modules文件夹中,如果在当前目录下已有node_modules文件夹,则会跳过下载和安装部分。
3. npm uninstall
npm uninstall [package name]命令可以卸载一个或多个包。如果使用了-g或--global选项,则卸载的是全局包。如果没有使用-g或--global选项,则卸载的是本地包。
4. npm update
npm update命令可以将已安装的包升级到最新版本。
5. npm search
npm search命令可以搜索npm仓库中的包。
6. npm publish
npm publish命令可以将我们的包发布到npm仓库中。在发布前需要登录自己的npm账号,通过npm adduser命令添加用户信息即可。
五、npm总结
npm是一个非常好用的包管理工具,可以大大提高我们的开发效率,管理第三方库和工具、依赖、命令等。熟练掌握npm的使用可以使我们更好地维护和管理自己的应用程序,不过需要注意选择合适的版本和库,避免不必要的错误和危险。