当前位置: 首页 > news >正文

安装 Node.js、npm

安装 nodejs

安装Node.js的最简单的方法是通过软件包管理器。

Node.js官网:https://nodejs.org/en/download/
请添加图片描述

cd /usr/local/src/wget -c https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-x64.tar.xz
xz -d node-v18.16.0-linux-x64.tar.xz
tar -xf node-v18.16.0-linux-x64.tarmv node-v18.16.0-linux-x64 /usr/local/nodejs

创建软连接

ln -s  /usr/local/nodejs/bin/node /usr/local/bin/node
ln -s  /usr/local/nodejs/bin/npm /usr/local/bin/npm
ln -s  /usr/local/nodejs/bin/npx /usr/local/bin/npx

/bin:存放所有用户皆可用的系统程序,即普通的基本命令,如:cat,ls,chmod等。
/sbin:存放超级用户才能使用的系统程序,即基本的系统命令,如:shutdown,reboot等。
/usr/bin:存放所有用户都可用的应用程序,一般是已安装软件的运行脚本,如:free、make、wget等。
/usr/sbin:存放超级用户才能使用的应用程序,一般是与服务器软件程序命令相关的,如:dhcpd、 httpd、samba等。
/usr/local/bin:存放所有用户都可用的与本地机器无关的程序,即第三方软件程序。
/usr/local/sbin:存放超级用户才能使用的与本地机器无关的程序。

查看版本号

若能显示版本号,证明安装正常。

node -v
npm -v

此时npm已经成为全局使用的工具。

nodejs目录结构:

├── bin
│ ├── node
│ ├── npm -> …/lib/node_modules/npm/bin/npm-cli.js
│ └── npx -> …/lib/node_modules/npm/bin/npx-cli.js
├── CHANGELOG.md
├── include
│ └── node
├── lib
│ └── node_modules
│ └── npm
├── LICENSE
├── README.md
└── share
├── doc
├── man
└── systemtap

npx工具

npx是一个工具,npm v5.2.0引入的一条命令(npx),一个 npm 包执行器,指在提高从 npm 注册表使用软件包时的体验,npm 使得它非常容易地安装和管理托管在注册表上的依赖项,npx 使得使用 CLI 工具和其他托管在注册表。它大大简化了一些事情。

npx有非常智能的识别模块,如果模块存在,就使用。如果不存在,就临时下载,用完就删除。使用某个 node 模块的时候,npx 根本不用关心是否安装过了。

npx:侧重于执行命令的,执行某个模块命令。虽然会自动安装模块,但是重在执行某个命令。
npm:侧重于安装或者卸载某个模块的。重在安装,并不具备执行某个模块的功能。

卸载 npm

若处于特殊原因,需要卸载 npm 的时候,可以使用下面命令来卸载。

npm uninstall npm -g
rm -f /usr/local/bin/npm
rm -f /usr/local/bin/npx
rm -f /root/.npmrcrm -rf /usr/local/nodejs
# 查看所有包含 npm 的遗留文件
find /root -name npm*
find /usr/local -name npm*# 查看所有包含 npx 的遗留文件
find /root -name npx*
find /usr/local -name npx*
# 删除所有包含 npm 的文件及目录
find /root -name npm* | xargs rm -rf      
find /usr/local -name npm* | xargs rm -rf # 删除所有包含 npx 的文件及目录
find /root -name npx* | xargs rm -rf      
find /usr/local -name npx* | xargs rm -rf 

升级 npm

npm install npm -g

npm常用命令

npm init:会引导你创建一个package.json文件,包括名称、版本、作者这些信息等。
npm install <packName>:安装nodejs的依赖包。
npm install <packName>-g:将包安装到全局环境中。
npm install <packName>--save:安装的同时,将信息写入 package.json 中。项目路径中如果有package.json文件时,直接使用 npm install 方法就可以根据 dependencies 配置安装所有的依赖包。
npm uninstall <packName>:移除。
npm remove <packName>:移除。npm uninstall <packName>别名。
npm update <packName>:更新。
npm ls:列出当前安装的了所有包。
npm root:查看当前包的安装路径。
npm root -g:查看全局的包的安装路径。
npm help:帮助,如果要单独查看install命令的帮助,可以使用的npm help install。
# 查看当前 npm 工具全局安装路径
npm prefix -g 
/usr/local/nodejs# 查看 root 用户,全局配置的包下载的位置
npm root -g
/usr/local/lib/node_modules#查看 npm 配置文件路径
npm config get userconfig
/root/.npmrc# 查看 npm 缓存目录:
npm config get cache
root 用户的缓存目录:/root/.npm。普通用户的缓存目录:~/.npm。
# 查看配置列表
npm config ls # 查看镜像源
npm config get registry# 全局切换官方镜像源
npm config set registry https://registry.npmjs.org# 全局切换淘宝镜像源
npm config set registry https://registry.npmmirror.com# 全局切换华为镜像源
npm config set registry https://repo.huaweicloud.com/repository/npm/
# 显示 npm install 下载安装详细日志
npm config set loglevel info # 恢复初始的简洁状态
npm config set loglevel notice 

查看全局已安装的包

查看全局已安装(-g的意思是global全局安装)。

npm list -g

会发现,会把包的所有依赖也显示出来

加上层级控制显示深度:--depth0

npm list -g --depth 0

这样就只会查到安装的包,并不会查到包的依赖。

查看项目中已安装过的包

查看当前项目已安装包(项目跟目录必须有package.json文件)

npm list

同样也是会把所有包的依赖显示出来。同上,加上–depth0就好了。

npm list --depth 0

如果只想显示生产环境依赖的包

npm list --depth 0 --production

只显示开发环境依赖的包

npm list --depth 0

查看某个模块包是否安装

npm list packName

注:这些命令中的参数list,可以简写为ls

卸载已经安装过的包

npm remove packName

查看 npm 服务器上包的信息

比如查看 vue 框架,发行版本的信息

# 查看 vue 所有版本
npm info vue
npm view vue versions# 查看 vue 最新版本
npm view vue version

清除 npm 缓存

在 npm5+版本中,npm 缓存通过将完整性不匹配视为缓存丢失来自修复损坏问题。因此,从缓存中提取的数据保证是有效的。如果你想确保一切都是一致的,那就用npm cache verify吧。删除缓存只会让 npm 运行得更慢,而且不太可能纠正你可能遇到的任何问题!

另一方面,如果你在调试安装程序的问题,或者依赖于写入空缓存的时间的竞争条件,你可以使用npm install --cache /tmp/empty-cache来使用一个临时缓存,而不是使用实际的缓存。如果您确定要删除整个缓存,请使用–force重新运行此命令。

npm7+版本,不需要清除缓存,若确实需要使用如下命令:

npm cache verify

npm7-版本,清除缓存命令:

npm cache clean
# 强制清除缓存
npm cache clean -—force# 强制清除缓存,简写
npm cache clean -f

npm install命令

在项目package.json配置中,有两个节点:

dependencies:生产环境依赖。此配置下的依赖包,会被打包发布到生产环境的。不仅仅在开发环境需要运行,还需要在生产环境运行的依赖包。

devDependencies:开发环境依赖。此配置下的依赖包,只用于开发环境,不用于生产环境,不会被打包。仅仅在开发环境需要运行,不需要在生产环境运行的依赖包。例如:进行单元测试之类的包。

在 npm 命令中,install可以简写为i。例如:npmi<packName>
版本 npm5+后,npm install <packName>,等价于npm install --save<packName>

在项目根目录下,执行npm install之后。npm 会安装以下的步骤执行安装:

第一步:检查配置

检查和获取 npm 的配置。配置文件优先级为:项目级的.npmrc 文件>用户级的.npmrc 文件>全局级的.npmrc 文件>npm 内置的.npmrc 文件。

第二步:安装依赖

如果项目根目录下,存在package-lock.json文件。会检查package-lock.json和package.json声明的依赖是否兼容(package-lock.json版本在 package.json 指定的版本范围内):

如果兼容,直接使用package-lock.json中的信息,通过网络从网络远端资源仓库或者本地缓存(~/.npm)中加载依赖。即使此时package.json中有新的版本,还是会根据package-lock.json下载。
如不兼容,package-lock.json将会更新到兼容package.json的版本。然后下载安装。
如果项目根目录下,没有package-lock.json文件。那么会根据package.json文件中的配置,递归构建依赖树,

然后就会根据构建好的依赖,去下载完整的依赖资源。在下载的时候,会检查缓存(~/.npm)中,有没有相关的资源包:

如果存在,直接解压到项目node_modules文件中。
如果没有,通过网络从网络远端资源仓库,下载此资源包,并校验包的完整性。然后添加到缓存(~/.npm)中,同时也解压到项目node_modules中。

第三步:生产版本号文件

最后,生成package-lock.json文件。

package.json:记录当前项目所依赖模块的版本信息,更新模块时锁定模块的大版本号(版本号的第一位),不能锁定后面的小版本。
package-lock.json:记录了项目node_modules目录下,所有模块(包)的名称、版本号、下载地址、及这个模块又依赖了哪些依赖。npm5 以后。package-lock.json文件锁定所有模块的版本号,包括主模块和所有依赖子模块。

Node.js的应用场景

目前前端开发的库都是以node包的形式进行管理
npm、yarn、pnpm工具成为前端开发使用最多的工具
使用Node.js作为web服务器开发、中间件、代理服务器 大量项目需要借助Node.js完成前后端渲染的同构应用
资深前端工程师会使用node为项目编写脚本工具
使用Electron来开发桌面应用程序和小工具

相关文章:

安装 Node.js、npm

安装 nodejs 安装Node.js的最简单的方法是通过软件包管理器。 Node.js官网&#xff1a;https://nodejs.org/en/download/ cd /usr/local/src/wget -c https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-x64.tar.xz xz -d node-v18.16.0-linux-x64.tar.xz tar -xf node…...

解决报错:找不到显卡

今天做实验碰到一个问题&#xff1a;torch找不到显卡&#xff1a; 打开任务管理器&#xff0c;独显直接没了&#xff0c;一度以为是要去修电脑了&#xff0c;突然想到上次做实验爆显存&#xff0c;屏蔽了gpu用cpu训练&#xff1a; import os os.environ["CUDA_DEVICE_OR…...

如何使用Node.js快速创建本地HTTP服务器并实现公网访问服务端

&#x1f49d;&#x1f49d;&#x1f49d;欢迎来到我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…...

【社交网络分析】课程考试复盘 + 相关资料补充

【社交网络分析】考试后复盘 相关资料补充 写在最前面论述1.描述Logistic回归模型构造损失函数的主要思想。它是如何把线性回归预测模型转化为二分类模型的。Logistic回归模型构造损失函数的主要思想Logistic回归如何将线性回归预测模型转化为二分类模型 2.社交网络分析中面临…...

算法——队列+宽搜(BFS)

队列这种数据结构大都服务于一个算法——宽搜&#xff08;BFS&#xff09;。宽搜还可以运用到二叉树、图、迷宫最短路径问题、拓扑排序等等 N叉数的层序遍历 N叉树的层序遍历 题目解析 给定一个 N 叉树&#xff0c;返回其节点值的_层序遍历_。&#xff08;即从左到右&#…...

前端八股文(CSS篇)二

目录 1.css中可继承与不可继承属性有哪些 2.link和import的区别 3.transition和animation的区别 4.margin和padding的使用场景 5.&#xff1a;&#xff1a;before和&#xff1a;after的双冒号和单冒号有什么区别&#xff1f; 6.display:inline-block什么时候会显示间隙 7…...

系统架构设计师笔记

第1章计算机组成与体系结构 1.1.1计算机硬件的组成 &#xff08;1&#xff09;控制器。控制器是分析和执行指令的部件&#xff0c;也是统一指挥并控制计算机各部件协调工作的中心部件&#xff0c;所依据的是机器指令。控制器的组成包含如下。 ①程序计数器PC&#xff1a;存储下…...

Livox-Mid-360 固态激光雷达ROS格式数据分析

前言&#xff1a; Livox-Mid-360 官方采用livox_ros_driver2ROS功能包发布ROS格式的数据&#xff0c;livox_ros_driver2可以把Livox原始雷达数据转化成ROS格式并以话题的形式发布出去。 下面列举一些雷达的基本概念&#xff1a; 点云帧&#xff1a;雷达驱动每次向外发送的一…...

如何恢复 iPhone 上永久删除的照片?

2007年&#xff0c;苹果公司推出了一款惊天动地的智能手机&#xff0c;也就是后来的iPhone。你会惊讶地发现&#xff0c;迄今为止&#xff0c;苹果公司已经售出了 7 亿部 iPhone 设备。根据最新一项调查数据&#xff0c;智能手机利润的 95% 都进了苹果公司的腰包。 如此受欢迎…...

基于单片机的公交车站自动报站器设计与实现

一、摘要 随着城市交通的快速发展&#xff0c;公交车作为城市公共交通的主要工具&#xff0c;其便捷性和高效性得到了广泛的认可。然而&#xff0c;由于公交车站的广播系统存在一定的局限性&#xff0c;如人工报站容易出现失误、音量大小不一等问题&#xff0c;给乘客带来了不…...

python之Selenium WebDriver安装与使用

首先把python下载安装后&#xff0c;再添加到环境变量中&#xff0c;再打开控制台输入: pip install selenium 正常情况下是安装好的&#xff0c;检查一下“pip show selenium”命令&#xff0c;出现版本号就说明安装好了。 1&#xff1a;如果出现安装错误&#xff1a; 那就用“…...

基于Java+Vue+uniapp微信小程序国产动漫论坛系统设计和实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和学生毕业项目实战,高校老师/讲师/同行交流合作✌ 主要内容&#xff1a;SpringBoot、Vue、SSM、HLM…...

奇因子之和(C语言)

题意&#xff1a; 一个整数的因子&#xff0c;就是所有可以整除这个数的数。奇数指在整数中&#xff0c;不能被 2 整除的数。所谓整数 Z 的奇因子&#xff0c;就是可以整除 Z 的奇数。 给定 N 个正整数&#xff0c;请你求出它们的第二大奇因子的和。当然&#xff0c;如果该数只…...

简单FTP客户端软件开发——VMware安装Linux虚拟机(命令行版)

VMware安装包和Linux系统镜像&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/1UwF4DT8hNXp_cV0NpSfTww?pwdxnoh 提取码&#xff1a;xnoh 这个学期做计网课程设计【简单FTP客户端软件开发】需要在Linux上配置 ftp服务器&#xff0c;故此用VMware安装了Linux虚拟机&…...

ArkTS开发实践

声明式UI基本概念 应用界面是由一个个页面组成&#xff0c;ArkTS是由ArkUI框架提供&#xff0c;用于以声明式开发范式开发界面的语言。 声明式UI构建页面的过程&#xff0c;其实是组合组件的过程&#xff0c;声明式UI的思想&#xff0c;主要体现在两个方面&#xff1a; 描述…...

vue项目中实现预览pdf

vue项目中实现预览pdf 1. iframe <iframe :src"pdfSrc"></iframe> ​data() {return {pdfSrc: http://192.168.0.254:19000/trend/2023/12/27/5635529375174c7798b5fabc22cbec45.pdf,}},​iframe {width: 100%;height: calc(100vh - 132px - 2 * 20px -…...

【Vulnhub 靶场】【Looz: 1】【简单】【20210802】

1、环境介绍 靶场介绍&#xff1a;https://www.vulnhub.com/entry/looz-1,732/ 靶场下载&#xff1a;https://download.vulnhub.com/looz/Looz.zip 靶场难度&#xff1a;简单 发布日期&#xff1a;2021年08月02日 文件大小&#xff1a;2.1 GB 靶场作者&#xff1a;mhz_cyber &…...

计算机基础面试题 |03.精选计算机基础面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…...

SQL最消耗性能查询错误用法示例

查询性能的消耗主要取决于查询的复杂度、表的大小以及使用的索引等因素。以下是一些查询中常见的错误用法示例&#xff0c;它们可能导致性能问题&#xff1a; 全表扫描&#xff1a; 错误用法示例&#xff1a; SELECT * FROM your_table;这种查询会检索表中的所有行&#xff0c;…...

Python学习笔记(六)面向对象编程

最近准备HCIE的考试&#xff0c;用空余时间高强度学习python 介绍了Python中面向对象编程的基本概念&#xff0c;包括类、类的属性、类的方法、类的方法中实例方法、类方法、静态方法&#xff0c;在类与对象中动态添加属性和方法&#xff0c;以及继承、类变量、多态等概念 类…...

CCNP课程实验-05-Comprehensive_Experiment

目录 实验条件网络拓朴 基础配置实现IGP需求&#xff1a;1. 根据拓扑所示&#xff0c;配置OSPF和EIGRP2. 在R3上增加一个网段&#xff1a;33.33.33.0/24 (用Loopback 1模拟) 宣告进EIGRP&#xff0c;并在R3上将EIGRP重分布进OSPF。要求重分布进OSPF后的路由Tag值设置为666&…...

第3课 使用FFmpeg获取并播放音频流

本课对应源文件下载链接&#xff1a; https://download.csdn.net/download/XiBuQiuChong/88680079 FFmpeg作为一套庞大的音视频处理开源工具&#xff0c;其源码有太多值得研究的地方。但对于大多数初学者而言&#xff0c;如何快速利用相关的API写出自己想要的东西才是迫切需要…...

Java 动态树的实现思路分析

Java 动态树的实现 目录概述需求&#xff1a; 设计思路实现思路分析1. 简单Java实现&#xff1a;2.建立父子表存储3.前端的对应的json 字符串方式 参考资料和推荐阅读 Survive by day and develop by night. talk for import biz , show your perfect code,full busy&#xff0…...

太阳系三体模拟器

介绍 《三体》是刘慈欣创作的长篇科幻小说&#xff0c;文中提到的三体问题比较复杂和无解。 该项目代码就是利用 Python 来模拟三体的运行&#xff0c;此项目代码完全共享&#xff0c;欢迎下载。 我们可以自己通过调整天体的初始坐标、质量和矢量速度等等参数来自定义各种场景…...

SQL常见面试题

今天刷了一遍牛客里的必知必会题&#xff0c;一共50道题&#xff0c;大部分都比较基础&#xff0c;下面汇总一下易错题。 SQL81 顾客登录名 本题几个关键点&#xff1a; 登录名是其名称和所在城市的组合&#xff0c;因此需要使用substring()和concat()截取和拼接字段。得到登…...

怎么获取客户端真实IP?GO

在使用 Golang 的 net/rpc 包进行 RPC 服务开发时&#xff0c;我们有时候会遇到需要获取客户端的真实 IP 和当前连接 net.Conn 的需求。然而在 net/rpc 的服务处理方法中&#xff0c;并没有提供直接获取到这些信息的途径。 那么&#xff0c;我们应该如何去获取这些信息呢&…...

山海鲸可视化软件的优势:数据整合、可视化与个性化定制

随着科技的快速发展&#xff0c;企业数字化转型已成为必然趋势。而对于一些本身没有开发优势或非技术型企业&#xff0c;数字化产品的选择就成为重中之重。作为山海鲸可视化软件的开发者&#xff0c;我们深知这一点&#xff0c;对于企业来说&#xff0c;能选择一个产品一定要有…...

Mybatis行为配置之Ⅰ—缓存

专栏精选 引入Mybatis Mybatis的快速入门 Mybatis的增删改查扩展功能说明 mapper映射的参数和结果 Mybatis复杂类型的结果映射 Mybatis基于注解的结果映射 Mybatis枚举类型处理和类型处理器 再谈动态SQL Mybatis配置入门 Mybatis行为配置之Ⅰ—缓存 Mybatis行为配置…...

【Java开发岗面试】八股文—计算机网络

声明&#xff1a; 背景&#xff1a;本人为24届双非硕校招生&#xff0c;已经完整经历了一次秋招&#xff0c;拿到了三个offer。本专题旨在分享自己的一些Java开发岗面试经验&#xff08;主要是校招&#xff09;&#xff0c;包括我自己总结的八股文、算法、项目介绍、HR面和面试…...

【PythonRS】基于矢量范围批量下载遥感瓦片高清数据(天地图、高德、谷歌等)

这个是之前写的代码了&#xff0c;正好今天有空所以就和大家分享一下。我们在处理项目时&#xff0c;有时候需要高清底图作为辅助数据源去对比数据&#xff0c;所以可能会需要卫星数据。所以今天就和大家分享一下如何使用Python基于矢量范围批量下载高清遥感瓦片数据。 1 读取矢…...

php网站开发是什么/山西太原网络推广

IoC概念 控制反转&#xff08;Inversion of Control&#xff09;是一个重要的面向对象编程的法则来削减计算机程序的耦合问题。 它还有一个名字叫做依赖注入&#xff08;Dependency Injection&#xff09;。IoC不是什么技术&#xff0c;它是一种设计模式。 实例演示 为了更好的…...

网站建设中最基本的决策/百度app

OSI七层参考模型&#xff1a;&#xff08;注意数据发送和接收的顺序不同&#xff0c;发送由7到1&#xff0c;接收由1到7&#xff09; 物理层&#xff1a;高低电平如何传输&#xff1b;数据链路层&#xff1a;提供介质&#xff0c;建立传输线路&#xff1b;网络层&#xff1a;提…...

wordpress 首页定制/球队积分排名

前言阿里巴巴一直是很多Java程序最想去的公司之一&#xff0c;今天我就给大家分享一个阿里Java程序员面经&#xff1a;阿里面试流程面试一般是四到五面&#xff0c;以电话面试为主。最后一轮面试时HR面试&#xff0c;所以只要挺过前面的技术面试一般就OK了。第一轮是考察基础&a…...

招聘公司怎么做网站/国家职业技能培训学校

申明:本文来自b站springboot视频讲解笔记部分。b站链接&#xff1a;自动配置原理 本文主要讲三点&#xff1a;配置文件到底能写什么&#xff1f;怎么写&#xff1f;自动配置原理&#xff1b; 配置文件能配置的属性参照 1、自动配置原理&#xff1a; 1&#xff09;、SpringB…...

衡阳网站优化公司/制作一个小型网站

文章目录1.DNS简介2.CDN简介3.HTTP协议通信原理3.1.网络协议概念模型3.1.1.OSI 七层网络模型和TCP/IP 四层概念模型3.1.2.请求发起过程&#xff0c;在 tcp/ip 四层网络模型中所做的事情3.1.2.1.客户端如何找到目标服务3.1.3.接收端收到数据包以后的处理过程3.1.3.1.为什么有了 …...

api网站模板/资源搜索引擎

在网上看了几篇AdaBoost的介绍后&#xff0c;感觉网上介绍的都不好&#xff0c;不能够让人完全理解&#xff0c;因此就下载了一个外国人写的代码&#xff0c;总算透彻的理解了AdaBoost&#xff0c;可以向Transfer开进了&#xff0c;现在分享一下代码&#xff1a;主函数代码[pla…...