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

Node.js和npm常用命令

一、Node.js简介

Node.js®是一个免费、开源、跨平台的JavaScript运行时环境,允许开发人员创建服务器、web应用程序、命令行工具和脚本。

点击查看node.js中文官网
点击查看node.js英文官网

二、npm简介

npm(Node Package Manager)是Node.js的软件包管理器,为你和你的团队打开了连接整个 JavaScript 天才世界的一扇大门。它是世界上最大的软件注册表,每星期大约有 30 亿次的下载量,包含超过 600000 个 包(package) (即,代码模块)。来自各大洲的开源软件开发者使用 npm 互相分享和借鉴。包的结构使您能够轻松跟踪依赖项和版本。

npm 由三个独立的部分组成:

  • 网站
    开发者查找包(package)、设置参数以及管理 npm 使用体验的主要途径。
  • 注册表(registry)
    是一个巨大的数据库,保存了每个包(package)的信息。
  • 命令行工具 (CLI)
    通过命令行或终端运行。开发者通过 CLI 与 npm 打交道。

点击查看npm 中文文档
点击查看npm英文文档

提醒:安装Node.js之后,应该立即安装npm,因为npm是Node.js的包管理器,它包含在Node.js安装程序中。通常,安装Node.js时会自动包含npm。

注意:下面演示命令操作都是在Mac OS 终端里执行的

提醒:先更新node,再更新npm,高版本的npm依赖高版本的node,否则执行npm命令时会报错,提示当前node版本太低,需要升级node版本

三、更新node.js

  • 查看node版本:node -v
    在这里插入图片描述
  1. 清除npm缓存:npm cache clean -f
    在这里插入图片描述
    npm WARN using --force Recommended protections disabled. 表示推荐的保护机制已禁用,意味着强制执行该操作,可能会出现问题或风险。要仔细考虑是否需要使用 –force参数

  2. 使用npm安装n模块,n模块专门用来管理nodejs的版本
    终端执行命令:sudo npm install -g n -force

    提示 : 如果不使用sudo作为前缀,很可能出现权限访问异常导致安装失败。
    如果权限不够,使用sudo作为前缀,并输入正确密码,按下回车键后即可继续执行相关操作。

  3. 更新node.js三种命令方式
    3.1 安装最新稳定版本()(推荐这个方式
    终端执行命令:sudo n stable
    3.2 安装最新版本
    终端执行命令:sudo n latest
    3.3 安装指定版本
    终端执行命令:sudo n 22.2.0

四、更新npm

  1. 查看npm版本:npm -v
    在这里插入图片描述
  2. 更新npm两种命令方式
    2.1安装最新版
    终端执行命令:sudo npm install npm@latest -g
    2.2安装指定版本
    终端执行命令: npm install npm@10.3.0 -g

    提醒:尾部 -g 参数代表安装到全局环境中

五、npm 其他指令

  1. 查看帮助命令:npm help
    在这里插入图片描述
  1. 显示所有命令的使用信息:npm -l
    在这里插入图片描述
  1. 查看当前目录下已安装的node包:npm -list或npm ls
    在这里插入图片描述
  1. 查看已安装全局包的路径:npm root -g
    在这里插入图片描述
  1. 查看当前包的安装路径: npm root
    在这里插入图片描述
  1. 更新包:npm update moduleName(包名)
  2. 卸载node模块:npm uninstall moudleName
  3. 移除包:npm remove moduleName
  4. 更改包内容后重新构建包: npm rebuild moduleName(包名)
  5. 发布一个包:npm public
  6. 运行:npm run xxx
  7. 创建一个新的package.json文件:npm init

相关文章:

  • element-ui组件table去除下方滚动条,实现鼠标左右拖拽移动表格
  • 四、通信和网络安全—局域网|广域网|远程连接和攻击技术(CISSP)
  • 让大模型更聪明——复杂而艰巨的任务
  • C++类与对象的特性
  • 【算法刷题day60】Leetcode:84. 柱状图中最大的矩形
  • 大规模语言模型的书籍分享
  • 听说部门来了个00后测试开发,一顿操作给我整麻了
  • 自己动手写docker——Namespace
  • 【chagpt】广泛使用API之前:考虑成本和数据隐私
  • 01-05.Vue自定义过滤器
  • 在树莓派3B+中下载opencv(遇到的各种问题及解决)
  • 宿舍管理系统代码详解(操作界面)
  • 人人皆是黑客?EvilProxy推出一键反向代理服务
  • vue深度选择器(:deep​)
  • LeetCode 343. 整数拆分 (dp动态规划)
  • 「译」Node.js Streams 基础
  • CNN 在图像分割中的简史:从 R-CNN 到 Mask R-CNN
  • Consul Config 使用Git做版本控制的实现
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • Flex布局到底解决了什么问题
  • golang 发送GET和POST示例
  • Idea+maven+scala构建包并在spark on yarn 运行
  • js ES6 求数组的交集,并集,还有差集
  • Python 基础起步 (十) 什么叫函数?
  • spring-boot List转Page
  • windows下如何用phpstorm同步测试服务器
  • 飞驰在Mesos的涡轮引擎上
  • 规范化安全开发 KOA 手脚架
  • 解决iview多表头动态更改列元素发生的错误
  • 来,膜拜下android roadmap,强大的执行力
  • 驱动程序原理
  • 微信小程序--------语音识别(前端自己也能玩)
  • 与 ConTeXt MkIV 官方文档的接驳
  • 7行Python代码的人脸识别
  • Android开发者必备:推荐一款助力开发的开源APP
  • gunicorn工作原理
  • 策略 : 一文教你成为人工智能(AI)领域专家
  • ​业务双活的数据切换思路设计(下)
  • # SpringBoot 如何让指定的Bean先加载
  • #QT(智能家居界面-界面切换)
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • ${factoryList }后面有空格不影响
  • (06)金属布线——为半导体注入生命的连接
  • (8)Linux使用C语言读取proc/stat等cpu使用数据
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (react踩过的坑)antd 如何同时获取一个select 的value和 label值
  • (二)【Jmeter】专栏实战项目靶场drupal部署
  • (实测可用)(3)Git的使用——RT Thread Stdio添加的软件包,github与gitee冲突造成无法上传文件到gitee
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转载)PyTorch代码规范最佳实践和样式指南
  • *_zh_CN.properties 国际化资源文件 struts 防乱码等
  • .net core 管理用户机密
  • .NET Micro Framework初体验
  • .NET 快速重构概要1
  • .net 验证控件和javaScript的冲突问题