安装 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来开发桌面应用程序和小工具

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/315487.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【ArcGIS微课1000例】0085:甘肃省白银市平川区4.9级地震震中位置图件制作

据中国地震台网正式测定,12月31日22时27分在甘肃白银市平川区发生4.9级地震,震源深度10公里,震中位于北纬36.74度,东经105.00度。 文章目录 一、白银市行政区划图1. 县级行政区2. 乡镇行政区二、4.9级地震图件制作1. 震中位置2. 影像图3. 震中三维地形一、白银市行政区划图…

Redis 与 Spring: 解决序列化异常的探索之旅

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

Java 19的未来:新特性、性能优化和更多

目录 前言 新特性的引入 1. 模式匹配的扩展 2. 增强的模式匹配异常处理 3. 基于记录的反射 4. 引入静态方法的接口 性能优化 1. 垃圾收集器的改进 2. 即时编译器的增强 3. 并行处理的改进 Java编程的前景展望 1. 更多的应用场景 2. 更强的生态系统 3.…

Groovy面向对象的使用及元编程方法的调用和拦截

文章目录 面向对象1 类的定义和对象的定义2 对象的属性值3 方法的定义和调用4 接口5 trait的使用6 元编程方法的调用和拦截 面向对象 1 类的定义和对象的定义 ​ 在groovy中新建一个Student的类&#xff0c;选择Groovy class。 ​ Student类的代码内容如下&#xff0c;在这个…

Spring见解 1

1.Spring概述 1.1.Spring介绍 ​ Spring是轻量级Java EE应用开源框架&#xff08;官网&#xff1a; http://spring.io/ &#xff09;&#xff0c;它由Rod Johnson创为了解决企业级编程开发的复杂性而创建 1.2.简化应用开发体现在哪些方面&#xff1f; IOC 解决传统Web开发中…

qt图像绘制QPainter

QPainter 以下是一些常用的 Qt::PenStyle 枚举值&#xff1a; Qt::NoPen&#xff1a;无线条。Qt::SolidLine&#xff1a;实线。Qt::DashLine&#xff1a;虚线&#xff0c;由短划线组成。Qt::DotLine&#xff1a;点线&#xff0c;由点组成。Qt::DashDotLine&#xff1a;点划线&…

ALSA学习(5)——ASoC架构中的Machine

参考博客&#xff1a;https://blog.csdn.net/DroidPhone/article/details/7231605 &#xff08;以下内容皆为原博客转载&#xff09; 文章目录 一、注册Platform Device二、注册Platform Driver三、初始化入口soc_probe() 一、注册Platform Device ASoC把声卡注册为Platform …

如何使用Docker部署Swagger Editor结合内网穿透实现远程编辑API文档

文章目录 Swagger Editor本地接口文档公网远程访问1. 部署Swagger Editor2. Linux安装Cpolar3. 配置Swagger Editor公网地址4. 远程访问Swagger Editor5. 固定Swagger Editor公网地址 Swagger Editor本地接口文档公网远程访问 Swagger Editor是一个用于编写OpenAPI规范的开源编…

AI 工具探索(二)

我参加了 奇想星球 与 Datawhale 举办的 【AI办公 X 财务】第一期&#xff0c;现在这是第二次打卡&#xff0c;也即自由探索&#xff0c;我选择 Modelscope 的 Agent 探索&#xff0c;并用gpts创作助理对比&#xff01; 最近想学学小红书的运营方法&#xff0c;选择了 小红书I…

什么是高防 IP?哪些行业适合用高防 IP?

在数字化浪潮席卷全球的今天&#xff0c;网络安全问题日益凸显。有听说过“高防 IP”这个名词吗&#xff1f;它究竟是什么东西&#xff0c;又能在哪些领域大显身手呢&#xff1f; 一、什么是高防 IP&#xff1f; 高防 IP&#xff0c;顾名思义&#xff0c;就是具备高级防护能力…

jsp结合servlet

servlet配置 环境配置2023.12.31 idea配置搭建 创建一个普通的java项目 由于新版idea去除了add framework support的ui显示&#xff0c;可以在左边项目栏中使用快捷键shiftk或者setting中搜索add framework support在修改对应的快捷键 点击ok然后应该就是下面这样的结果 这里…

从零实现一套低代码(保姆级教程) --- 【11】实现Card卡片组件及属性样式配置

摘要 我们通过十个篇章&#xff0c;把组件列表&#xff0c;画布区&#xff0c;属性面板&#xff0c;样式面板&#xff0c;容器组件这五个主要模块实现出来了。 如果想继续添加组件&#xff0c;就按照之前的方式添加即可。对于数据录入这样的组件&#xff0c;或者一个按钮一个…