程序媛的mac修炼手册-- Node.js入门篇

最近因为参与一个微信小程序的开发,开始摸索JavaScript。期间,需要基于Node.js安装微信开发工具的依赖项,所以又顺带学习了Node.js的包管理工具npm(Node Package Manager)。不过,之前看到国外的全栈大佬​​​​​​​说,npm过时了,现在更全能的替代工具是pnpm。

下面就跟各位分享一下用Mac入门Node.js的经验。

目录

一、Node.js简介

二、Node.js下载

三、Node.js安装

四、Node.js环境配置

五、Node.js安装验证

六、退出Node.js环境

七、释义


一、Node.js简介

  1. Javascript是事件驱动型编程语言,Node.js是一个运行 JavaScript 代码的开发平台,基于Google的V8引擎,是后端程序员最好的开发环境。

  2. 用户在安装Node.js 时,会同时安装npm(Node Package Manager),这是 Node.js 的包管理器,用于安装、管理和发布 JavaScript 包。

  3. 至于老外流行的pnpm,和npm一样都是用来管理 JavaScript 包的工具,可以用来安装、更新、删除和管理项目依赖项。此外,JavaScript 的的包管理器还有Yarn。

  4. 总之一句话,pnpm安装在磁盘上的占用空间更小,安装速度更快。​​​​​​​

二、Node.js下载

打开Node.js官网,如下所示:

Node.js — Download

对于任何操作系统,Node.js都准备了两个版本,一个是长期维护版(LTS版),一个是最新版(Current版)。

听劝,果断下载长期维护版!

 三、Node.js安装

下载Node.js的安装包pkg后,安装常规方法安装。

注意,安装过程一直点“continue”,直到最后一页, 如下图所示。
务必确保安装路径为 /usr/local/bin
一般情况下,Node和npm会同时安装。

四、Node.js环境配置

Node.js安装成功后,需要在Mac「终端(terminal)」中配置全局环境变量。

1、打开「终端(terminal)」,输入以下命令行,确保切换到根目录

cd ~

2、执行以下命令,配置zsh shell下的环境变量。如果是在bash shell下安装,则执行对应的命令行 vim  .bash_profile

vim .zshrc

​ 3、命令行执行过程中,按 i 进入编辑模式,在最后一行加上PATH=$PATH:/usr/local/bin

​ 4、按 esc 退出编辑模式,并输入:wq保存并退出

 5、执行以下命令行,使得文件立即生效。如果是在bash shell下,则执行source  .bash_profile

source .zshrc

五、Node.js安装验证

打开「终端(terminal)」,依次输入以下命令

npm -v
node -v
node

 输出以下内容,即表示Node.js安装成功

六、退出Node.js环境

按两次control+c或一次control+d退出node环境

七、释义

  1. Javascript是事件驱动型编程语言,Node.js是一个运行 JavaScript 代码的开发平台,基于Google的V8引擎,是后端程序员最好的开发环境。它允许开发者使用 JavaScript 编写服务器端代码,构建网络应用程序。

  2. Node.js 提供了许多内置模块,例如文件系统、HTTP、HTTPS 等,使开发者能够轻松地构建各种类型的应用程序。Node采用了一个称为“事件循环(event loop)"、非阻塞式I/O的架构,编写出可扩展性高的服务器,让Javascript运行于服务器端。Node采用一系列“非阻塞”库来支持事件循环的方式。本质上就是为文件系统、数据库之类的资源提供接口。向文件系统发送一个请求时,无需等待硬盘(寻址并检索文件),硬盘准备好的时候非阻塞接口会通知Node。

  3. 用户在安装Node.js 时,会同时安装npm(Node Package Manager),这是 Node.js 的包管理器,用于安装、管理和发布 JavaScript 包。

  4. 开发者可通过 npm 在项目中安装和管理依赖项,这些依赖项可以是库、框架、工具等。npm 还允许开发者发布自己的 JavaScript 包,供他人使用。在开发中,如果要使用某个 SDK (Software Development Kit,软件开发工具包)来访问特定服务、平台或功能,通常这个 SDK 会依赖于其他的库或模块。这些依赖项可能包括其他 SDK、工具库、辅助函数等,它们需要在开发项目中进行安装,以便 SDK 能够正常运行。

  5. 至于老外流行的pnpm,和npm一样都是用来管理 JavaScript 包的工具,可以用来安装、更新、删除和管理项目依赖项。此外,JavaScript 的的包管理器还有Yarn。

  6. 只不过,npm 默认情况下会在每个项目的本地目录中复制依赖项,因此对于每个项目都会有一个 node_modules 文件夹。而 pnpm 使用了符号链接的方式,它会在一个全局位置存储依赖项,并通过符号链接将它们链接到每个项目中,避免了重复安装相同版本的包。pnpm 支持并发安装依赖项,而 npm 默认是串行安装。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

GEE入门篇|图像处理(二):在Earth Engine中进行波段计算

目录 波段计算 1.NDVI的计算 2.NDVI 归一化差值的单次运算计算 3.使用 NDWI 的归一化差值 波段计算 许多指数可以使用 Earth Engine 中的波段运算来计算。 波段运算是对图像中两个或多个波段进行加、减、乘或除的过程。 在这里,我们将首先手动执行此操作&#x…

政安晨:【掌握AI的深度学习工具Keras API】(二)—— 【使用内置的训练循环和评估循环】

渐进式呈现复杂性,是指采用一系列从简单到灵活的工作流程,并逐步提高复杂性。这个原则也适用于模型训练。Keras提供了训练模型的多种工作流程。这些工作流程可以很简单,比如在数据上调用fit(),也可以很高级,比如从头开…

ShardingSphere inline表达式线程安全问题定位

ShardingSphere inline表达式线程安全问题定位 问题背景 春节期间发现 ShardingSphere 事务 E2E 偶发执行失败问题,并且每次执行失败需要执行很久,直到超时。最终定位发现 inline 表达式存在线程安全问题。本文记录定位并解决 inline 表达式线程安全问…

实验笔记之——Ubuntu20.04配置nvidia以及cuda并测试3DGS与SIBR_viewers

之前博文测试3DGS的时候一直用服务器进行开发,没有用过笔记本,本博文记录下用笔记本ubuntu20.04配置过程~ 学习笔记之——3D Gaussian Splatting源码解读_3dgs运行代码-CSDN博客文章浏览阅读3.2k次,点赞34次,收藏62次…

编写科技项目验收测试报告需要注意什么?第三方验收测试多少钱?

科技项目验收测试是一个非常重要的环节,它对于确保科技项目的质量和可用性起着至关重要的作用。在项目完成后,进行科技项目验收测试可以评估项目的功能、性能和可靠性等方面,并生成科技项目验收测试报告,以提供给项目的相关方参考…

keil uv5 map文件解析

map参考博客:https://www.csdn.net/tags/MtjaYgwsMTY2NzUtYmxvZwO0O0OO0O0O.html 配置外部flash存储代码:https://strongerhuang.blog.csdn.net/article/details/51485903?spm1001.2101.3001.6650.4&utm_mediumdistribute.pc_relevant.none-task-bl…

使用 Helm 安装 极狐GitLab

本篇作者 徐晓伟 使用 Helm 简便快捷的部署与管理 极狐GitLab 前提条件 k8s 完成 helm 的配置 k8s 完成 ingress 的配置 内存至少 10G 演示环境是 龙蜥 Anolis 8.4(即:CentOS 8.4)最小化安装k8s 版本 1.28.2calico 版本 3.26.1nginx ingre…

Dockerfile(5) - CMD 指令详解

CMD 指定容器默认执行的命令 # exec 形式,推荐 CMD ["executable","param1","param2"] CMD ["可执行命令", "参数1", "参数2"...]# 作为ENTRYPOINT的默认参数 CMD ["param1","param…

高瓴张磊入籍新加坡,这代表了什么?

文|新熔财经 作者|显洋 这两天,海外媒体报道了中国投资大佬与企业家拿到新加坡永居的事儿。本来乏善可陈的文章,却因为一个人名的出现变得有趣起来——高瓴创始人张磊,一位曾经在国内如日中天,但今天鲜少…

论文阅读:2020GhostNet华为轻量化网络

创新:(1)对卷积进行改进(2)加残差连接 1、Ghost Module 1、利用1x1卷积获得输入特征的必要特征浓缩。利用1x1卷积对我们输入进来的特征图进行跨通道的特征提取,进行通道的压缩,获得一个特征浓…

解放设计师的创造力:免版的图片素材

title: 解放设计师的创造力:免版的图片素材 date: 2024/2/29 15:10:19 updated: 2024/2/29 15:10:19 tags: 版权无忧创意自由设计效率视觉提升广告设计UI/UX素材移动应用 在设计领域,设计师常常需要使用图片素材来增加作品的视觉效果。然而,…

Docker技术概论(1):Docker与虚拟化技术比较

Docker技术概论(1) Docker与虚拟化技术比较 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite:http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https:…

从 Flask 切到 FastAPI 后,起飞了!

我这几天上手体验 FastAPI,感受到这个框架易用和方便。之前也使用过 Python 中的 Django 和 Flask 作为项目的框架。Django 说实话上手也方便,但是学习起来有点重量级框架的感觉,FastAPI 带给我的直观体验还是很轻便的,本文就会着…

LeetCode34.在排序数组中查找元素的第一个和最后一个位置

题目 给你一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请你找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存在目标值 target,返回 [-1, -1]。 你必须设计并实现时间复杂度为 O(log n) 的算法解决此问题。 示例 输入…

尚硅谷Java数据结构--希尔排序

插入排序的问题🎈: arr{2,3,4,5,6,0,9,7,8}; 当0作为插入元素的时候,其待插入下标与原下标相差很远,需要进行多次比较和移动。 希尔排序则是先将下标相差一定距离gap的元素分为一组,进行插入排序;再逐渐将距…

Flutter(四):SingleChildScrollView、GridView

SingleChildScrollView、GridView 遇到的问题 以下代码会报错: class GridViewPage extends StatefulWidget {const GridViewPage({super.key});overrideState<GridViewPage> createState() > _GridViewPage(); }class _GridViewPage extends State<GridViewPage&g…

Maven下载、安装、配置教程

maven是一个项目管理的工具&#xff0c;maven自身是纯java开发的&#xff0c;可以使用maven对java项目进行构建、依赖管理。 通常我们靠手动下载jar包引入项目中是非常浪费时间的&#xff0c;我们可以通过maven工具帮我们导入jar包提高开发效率。 第一步&#xff1a;下载Mave…

Docker技术概论(3):Docker 中的基本概念

Docker技术概论&#xff08;3&#xff09; Docker 中的基本概念 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress of this article:https://…

vivo 在离线混部探索与实践

作者&#xff1a;来自 vivo 互联网服务器团队 本文根据甘青、黄荣杰老师在“2023 vivo开发者大会"现场演讲内容整理而成。 伴随 vivo 互联网业务的高速发展&#xff0c;数据中心的规模不断扩大&#xff0c;成本问题日益突出。在离线混部技术可以在保证服务质量的同时&…

【探索AI】十二 深度学习之第2周:深度神经网络(一)深度神经网络的结构与设计

第2周&#xff1a;深度神经网络 将从以下几个部分开始学习&#xff0c;第1周的概述有需要详细讲解的的同学自行百度&#xff1b; 深度神经网络的结构与设计 深度学习的参数初始化策略 过拟合与正则化技术 批标准化与Dropout 实践&#xff1a;使用深度学习框架构建简单的深度神…