短小精悍的npm入门级保姆教程,一篇包会
npm是什么?
npm是一个强大的包管理工具,它使开发人员能够轻松地安装、更新和管理项目依赖的包。通过初始化一个package.json 文件,我们可以描述你的项目并记录其依赖关系。使用npm install命令,我们可以安装和管理包。使用npm publish命令,我们可以发布自己的包(由于日常很少涉及发布自己的包,这里就不总结了)。无论是在开发过程中还是在分享你的包时,npm都提供了丰富的功能和命令来满足你的需求。
但是在日常搜索网上文章时,发现网上的文章总结的一大堆,而这个npm很多时候对于我们来说就是一个工具,并不涉及多么高深的学习,所以,我这里的这篇文章就进行高度概括的总结,力争通过这一篇文章让大家会用npm。
npm安装&升级
npm不需要单独安装。在安装Node的时候,会连带一起安装npm。但是,Node附带的npm可能不是最新版本,最后用下面的命令,更新到最新版本。
$ sudo npm install npm@latest -g
如果是 Window 系统使用以下命令即可:
npm install npm -g
然后,运行下面的命令,查看各种信息。
# 查看 npm 命令列表
$ npm help
# 查看各个命令的简单用法
$ npm -l
# 查看 npm 的版本
$ npm -v
# 查看 npm 的配置
$ npm config list -l
解决下载包慢的问题
因为npm的包服务器在国外,在国内速度很慢且不稳定,所以在国内就有很多企业架设了国内的镜像,方便国内开发者使用,日常过程中,我们经常使用的是淘宝的镜像源,通过以下命令进行配置即可:
// 1. 清空缓存
npm cache clean --force
// 2. 切换新源
npm config set registry https://registry.npmmirror.com
配置全局依赖的保存路径&缓存路径
一般情况下,我们都会对全局包保存路径和缓存路径进行自定义,自定义方式如下:
在想要保存的目录下新建【node_global】及【node_cache】文件夹,然后执行以下两条命令:
npm config set prefix "/Users/Jelly/Repository/node_global"
npm config set cache "/Users/Jelly/Repository/node_cache"
npm常用指令
| 命令 | 说明 |
|---|---|
npm init |
初始化一个新的npm项目,并生成package.json文件 |
npm install |
安装项目依赖的所有包 |
npm install <package> |
安装指定的包 |
npm install --save <package> |
安装指定的包,并将其添加到dependencies字段中 |
npm install --save-dev <package> |
安装指定的包,并将其添加到devDependencies字段中 |
npm uninstall <package> |
卸载指定的包 |
npm update |
更新项目依赖的所有包 |
npm update <package> |
更新指定的包 |
npm run <script> |
运行package.json文件中定义的脚本 |
npm search <keyword> |
搜索包 |
npm ls |
列出项目依赖的所有包 |
npm cache clear |
清空缓存 |
常用的命令就上表中的那么几个,基本覆盖了我们日常90%的场景,如果遇到不在上表中的,再上网搜索就OK了。
npm install和npm install -g的区别
npm install说明:
npm install是针对当前项目进行包安装,当执行npm install package-name时,npm会自动下载并安装指定的依赖包,并将包保存到项目的node_modules目录中;- 使用
npm install命令时,如果当前目录下存在一个package.json文件,那么npm会自动将安装的依赖包加入到package.json文件的dependencies字段中。
npm install -g说明:
npm install -g命令用于全局安装npm包,npm包可以作为全局命令行工具使用,比如vue-cli、create-react-app等。这些工具在命令行中可以直接调用,而不需要在每个项目中都单独安装;- 全局安装的npm包会被安装到全局的
node_modules目录中,可以通过npm root -g命令查看全局node_modules的路径。
npm install --save和npm install --save-dev的区别
npm install --save说明:
- 安装项目正常运行所必需的包。在项目发布时,依赖包的安装和版本信息会被自动读取,确保项目在其他环境中的正确运行;
- 安装依赖包,并将依赖包信息保存到
package.json文件的dependencies字段中。
npm install --save-dev说明:
- 安装开发环境所需的依赖包。这些依赖包通常是项目开发过程中需要用到的工具、测试框架、模拟数据等;
- 安装依赖包,并将依赖包信息保存到
package.json文件的devDependencies字段中。
总结
很多时候,对于很多知识,我们只需要掌握并且能熟练使用即可,并不需要深入其背后去了解原理,而这篇文章就是这样的一篇入门级保姆文章,一篇让你掌握并学会使用npm。

短小精悍的npm入门级保姆教程,一篇包会的更多相关文章
- Flow简易教程——安装篇
.mydoc_h1{ margin: 0 0 1em; } .mydoc_h1_a{ color: #2c3e50; text-decoration: none; font-size: 2em; } ...
- Mac 配置教程-开发篇
将 Mac 日常使用的软件和开发软件区分开,将之前写的 Mac 配置的文章分成了两篇: Mac 配置教程-日常篇 Mac 配置教程-开发篇 图床 iPic 设置快捷键 Command+Shift+u ...
- C++混合编程之idlcpp教程Python篇(9)
上一篇在这 C++混合编程之idlcpp教程Python篇(8) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相比,工程PythonTutorial7中除了四个文件PythonTu ...
- C++混合编程之idlcpp教程Lua篇(9)
上一篇在这 C++混合编程之idlcpp教程Lua篇(8) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相比,工程LuaTutorial7中除了四个文件LuaTutorial7.c ...
- C++混合编程之idlcpp教程Python篇(8)
上一篇在这 C++混合编程之idlcpp教程Python篇(7) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程PythonTutorial6中,同样加入了四个文件:Pyt ...
- C++混合编程之idlcpp教程Lua篇(8)
上一篇在这 C++混合编程之idlcpp教程Lua篇(7) 第一篇在这 C++混合编程之idlcpp教程(一) 与前面的工程相似,工程LuaTutorial6中,同样加入了四个文件:LuaTutori ...
- C++混合编程之idlcpp教程Python篇(7)
上一篇在这 C++混合编程之idlcpp教程Python篇(6) 第一篇在这 C++混合编程之idlcpp教程(一) 与PythonTutorial4工程相似,工程PythonTutorial5中,同 ...
- C++混合编程之idlcpp教程Lua篇(7)
上一篇在这 C++混合编程之idlcpp教程Lua篇(6) 第一篇在这 C++混合编程之idlcpp教程(一) 与LuaTutorial4工程相似,工程LuaTutorial5中,同样加入了四个文件: ...
- C++混合编程之idlcpp教程Python篇(6)
上一篇在这 C++混合编程之idlcpp教程Python篇(5) 第一篇在这 C++混合编程之idlcpp教程(一) 工程PythonTutorial4中加入了四个文件:PythonTutorial4 ...
- C++混合编程之idlcpp教程Lua篇(6)
上一篇在这 C++混合编程之idlcpp教程Lua篇(5) 第一篇在这 C++混合编程之idlcpp教程(一) 工程LuaTutorial4中加入了四个文件:LuaTutorial4.cpp, Tut ...
随机推荐
- 神经网络优化篇:详解如何训练一个 Softmax 分类器(Training a Softmax classifier)
如何训练一个 Softmax 分类器 回忆一下之前举的的例子,输出层计算出的\(z^{[l]}\)如下,\(z^{[l]} = \begin{bmatrix} 5 \\ 2 \\ - 1 \\ 3 \ ...
- 20.3 DLL入口函数--《Windows核心编程》
如果在执行一些与进程或者线程有关的初始化或者销毁工作的时候,需要 DllMain.如果只需要创建一个包含资源的DLL,不需要这个函数. B00L WINAPI DllMain(HINSTANCE hi ...
- Cnpack ctrl+alt+v 来回切换 变量声明区,和代码写区,非常方便
Cnpack ctrl+alt+v 来回切换 变量声明区,和代码写区,非常方便 非常方便
- IDEA中使用ChatGPT
IDEA中使用ChatGPT 在IDEA中安装ChatGPT插件,可以帮助写基础逻辑代码,提高工作效率和学习效率,有兴趣可以玩一下. 插件名为 Bito. 1. 什么是Bito Bito是一款在Int ...
- 【Unity3D】碰撞体组件Collider
1 前言 Unity3D 中碰撞体(Collider)组件用于检测运动的物体之间是否发生碰撞,也可以作为触发器使用.产生碰撞的条件是: 2 个游戏对象都有 Collider 至少有一个游戏对象有 ...
- redis7源码分析:redis 多线程模型解析
多线程模式中,在main函数中会执行InitServerLast void InitServerLast() { bioInit(); // 关键一步, 这里启动了多条线程,用于执行命令,redis起 ...
- ADVMP 三代壳(vmp加固)原理分析(加壳流程)
开源项目地址 https://github.com/chago/ADVMP vmp 加固可以说时各大加固厂商的拳头产品了,这个开源项目虽然不是十分完善,让我们可以一览vmp加固的原理,是十分好的学习资 ...
- 案例分享:Qt便携式致病菌快速检测仪(账号管理、实验过程、二维图表、历史数据、通讯管理、实验报告、中英文等等)
需求 根据提供的用户原型设计.ui设计.通讯协议研发便携式致病菌快速检测仪器软件. 100%还原ui. 基本主功能(推荐visio:★★★☆☆,前期主流程需求整理) Dem ...
- ASP.NET 跨域配置
报错信息 The 'Access-Control-Allow-Origin' header is present on the requested resource 解决方案 web.config配置 ...
- 第119篇: JavaScript 类
好家伙,我们先来复习一下 关于Java,类的三大特征: 1.封装,也就是把客观事物封装成抽象的类,并且类可以把自己的数据和方法只让可信的类或者对象操作,对不可信的进行信息隐藏. 2.继承,继承性更 ...