因为不熟悉npm基础知识,我被同事笑话了

简介: 【10月更文挑战第17天】因为不熟悉npm基础知识,我被同事笑话了

背景

由于面试的时候甲骨文背的很多,进入公司后,老板一直觉得我能力还可以,于是给我安排了很多活。但是,我实际经验很少,像git、node、npm这些东西都只是了解阶段。

于是,实际工作后就尴尬了。由于接手的是二手项目,项目中很多依赖有问题,需要进行依赖重装升级等操作。但是,好多我都不熟悉,于是被同事diss了:

npm i -g 和-s的区别你都不知道?切换镜像源你都不知道?查看版本你都不知道?

一套diss下来,我都怀疑人生了。没有谁刚工作就啥都会啊!郁闷!

于是,我下去恶补了知识,把这些常见的知识都梳理了一下!

npm核心必备知识

npm介绍

Npm(Node Package Manager,即node包管理器)是node.js的一个程序包管理和分发的管理工具,它可以让全世界与Web前端相关开发者共享代码,非常方便的使用各种插件、库和框架,无需再到处去搜寻需要用到的这些程序。

核心功能

  • npm服务器下载别人编写的第三方包到本地使用(如vue中安装各种插件)。
  • npm服务器下载并安装别人编写的命令行程序到本地使用。
  • 将自己编写的包或命令行程序上传到NPM服务器供别人使用。

npm 安装与升级

由于新版的node.js已经集成了npm,所以安装node即可安装npm。


使用 " npm -v " 可以测试是否成功安装。

Window 系统下,可以使用 npm install npm -g 升级npm版本

注:如果node版本与npm不匹配,可能会导致npm命令无法使用

模块安装与卸载

安装

npm 安装 Node.js 模块语法格式如下:

$ npm install <Module Name>  ||  npm i <Module Name>

npm i命令中的-g -D -S的区别

npm i xx -g

npm install xx --global的简写,对模块进行全局安装。

所谓全局安装,是指把模块安装到操作系统上,全局是指操作系统,全局安装完成后,一般会安装到AppDataAppData\Roaming\npm目录下。

如:npm install webpack -g,就是全局安装webpack,在操作系统的任何一个目录下都可以使用webpack所提供的指令。

如:全局安装vue,就可以vue create 命令

查看全局安装的目录

查看npm 全局安装的根目录

npm root -g

可以打开这个文件夹观察一下

start D:\Program\node\node_modules

里面的文件夹名就是全局安装的指令。

npm i xx -D

npm install xx --save-dev的简写,对模块进行局部安装,模块写入到 devDependencies 对象。

局部的意思是只针对当前项目,模块一般安装到项目文件夹下的node_modules文件夹下。

devDependencies对象,是我们开发的时候需要用到的一些包,只用于开发阶段,真正打包上线的时候并不需要这些包,因为这些工具只是你用来打包代码的,是用来识别特定文件以及代码,帮助我们生产最终文件的。如npm i vue-loader vue-template-complier -D,就是在Vue项目中安装vue模板文件的解析插件,经过配置后即可在项目中解析vue模板

npm i xx -S

npm install xx --save 的简写,同上也是对模块进行局部安装,不同的是模块写入到 dependencies对象。

模块同上一样将安装到项目文件夹下的node_modules文件夹下。

dependencies对象,这个与devDependencies不同,是需要发布到生产环境中的,就比如你要跑一个基于vue的项目,所以需要vue.js来支持,vue.js文件就需要跟随项目到最终的生产环境。npm i vue -S即可将Vue模块安装到项目的依赖中,并一同发布到生产环境。

卸载

npm uninstall

其他重要知识点

npm link项目全局访问

通过 npm i XX -g的项目在命令行可以全局访问,但是没有全局安装的项目是不能全局访问的。但是我们可以通过命令实现

npm link

这么做,相当于给全局目录新建了当前目录的快捷方式

npm pack本地项目打包

本地开发的一个插件,可以本地打包本地使用。

打包

npm pack

安装

npm i 包的绝对路径 -d

其他常用命令

查看镜像源

npm config get registry

切换镜像源

淘宝源

npm config set registry https://registry.npmmirror.com

默认全局镜像

npm config set registry https://registry.npmjs.org

npm 查看命令(以axios为例)

查看项目中依赖所在的目录

npm root

查看全局安装的依赖所在目录

npm root -g

查看已安装依赖的列表

npm list

或者

npm ls

查看axios最新的版本号

npm view axios version

查看全部axios历史版本号

npm view axios versions

查看最新的axios版本的信息

npm view axios

或者

npm info axios

查看本地已安装的axios的详细信息

npm list axios

或者

npm ls axios

清除npm的缓存

npm cache clean

清除项目中没有被使用的依赖

npm prune 

1
相关文章
|
缓存 PHP Nacos
nacos常见问题之服务升级后nacos控制台看到都是不可用重启nacos后恢复如何解决
Nacos是阿里云开源的服务发现和配置管理平台,用于构建动态微服务应用架构;本汇总针对Nacos在实际应用中用户常遇到的问题进行了归纳和解答,旨在帮助开发者和运维人员高效解决使用Nacos时的各类疑难杂症。
887 4
|
缓存 Linux Windows
flyingsaucer进行html文件转图片和pdf
目录 一、前言 二、html转图片 1、添加依赖 2、代码示例 (1)测试html文件 (2)代码示例 3、演示结果 三、html转pdf 1、添加依赖 2、代码示例 3、演示结果 四、注意点 1、html转图片的源url 2、部署到linux上后中文乱码 五、Linux上安装字体 1、拷贝字体 2、赋予权限 3、建立字体缓存 4、查看安装的字体
flyingsaucer进行html文件转图片和pdf
Altium Designer中如何锁定部分选中的元器件
Altium Designer中如何锁定部分选中的元器件
1267 0
|
10月前
|
人工智能 大数据 物联网
申报开启|2025年阿里云协同育人项目申报指南
阿里云启动2025年协同育人项目申报,支持高校教学内容和课程体系改革及实践基地建设。项目涵盖人工智能通识教育、AIGC设计等领域,提供资金、云计算资源和技术培训等支持。申报截止至2025年2月28日,面向全国本科高校教师,旨在深化产教融合,共育创新人才。详情及流程见官网。
|
11月前
|
机器学习/深度学习 前端开发 算法
基于STP文件的智能比对系统技术介绍
基于STP文件的智能比对系统通过集成多项先进技术,实现设计图纸与实物的自动化、高精度比对。系统采用分布式架构,包含前端Web界面、后端处理服务器、图像数据库和深度学习模型模块,支持STP文件解析、3D模型可视化、多视角图片生成及实物照片智能匹配。该系统显著提升机械制造和质量控制领域的效率与准确性,减少人工操作误差,广泛应用于设计验证、质量检测等场景。
727 3
|
机器学习/深度学习 人工智能 持续交付
利用AI进行代码审查:提升软件质量的新策略
【10月更文挑战第28天】本文探讨了AI在代码审查中的应用,介绍了AI如何通过静态代码分析、代码风格检查和实时反馈提升代码质量。文章还讨论了将AI工具集成到CI/CD流程、定制化规则和结合人工审查等进阶技巧,并推荐了SonarQube和DeepCode等实用工具。未来,AI代码审查工具将更加智能,助力软件开发。
|
自然语言处理 数据中心
Scaling LLM Test-Time Compute Optimally: 一种更有效的方法
【10月更文挑战第14天】本文探讨了大型语言模型(LLMs)在测试时通过增加计算资源来提升性能的可能性。研究发现,通过优化测试时计算的分配,特别是采用基于过程的验证器搜索和自适应更新响应分布的方法,LLM可以显著提高对复杂问题的应对能力,甚至在某些情况下超越更大规模的模型。论文提出了“计算最优”策略,旨在根据问题难度自适应调整计算资源,以最大化性能提升。未来工作将聚焦于增强测试时计算缩放、快速评估问题难度及实现自我改进循环。
522 6
|
算法 前端开发 Java
支撑每秒数百万订单无压力,SpringBoot + Disruptor 太猛了!
本文详细介绍如何通过 Spring Boot 集成 Disruptor 实现每秒处理数百万订单的高性能系统。Disruptor 是一种无锁并发框架,采用环形缓冲区和无锁算法,提供极低延迟和高吞吐量。文章涵盖 Maven 配置、事件工厂、处理器及生产者实现,并通过 REST API 和 Thymeleaf 展示订单创建流程。Disruptor 在高并发场景下表现出色,是解决高性能并发处理的理想方案。
|
JSON JavaScript 开发工具
NPM 使用介绍
10月更文挑战第2天
744 0
|
弹性计算 算法 Java
一文说清linux system load averages
深入浅出阐释linux system load averages的语义,算法和计算流程,并分享了实际load飙高问题的排查经验和心得。
一文说清linux system load averages