Node.js入门笔记(一)——环境问题和版本号问题

2023-11-09

    其实就是寒假比较无聊搭了这个自己的博客网站,主要是为了提高自己的服务器的利用率,但是最后发现内容实在是少了点,因此去了趟CSDN,把自己的旧博客迁移到了bolgs.nightowl.top上面。起初搭建完成并模仿大佬们植入3D插件和下雪的插件觉得挺好的,但是后来发现其实在编辑的时候还是可以的,但是发布之后无论是手机端还是web端后不太便于阅读,加上没有CSDN这样的社区,自己写的东西也没人看,感觉不太好玩的牙子,因此决定连夜扛着火车跑路。好啦,废话不多说,直接进入正文。


    node.js本质上是一个基于chrome浏览器的V8引擎的js运行环境。换句话说node.js能够执行很多系统级别的api,跨域、文件读写等都能够突破浏览器的安全沙箱的限制。
1.node.js的版本管理工具——nvm

    有些时候可能需要切换node.js的版本,因此需要使用到nvm工具(node version manager)。下载位置:https://github.com/coreybutler/nvm-windows/releases,windows选择setup.zip文件,也就是第三个。下载完成之后,下载node安装包,先安装node,然后安装nvm,在安装nvm的时候的systemlink将路径指向nodejs的安装目录即可。
在这里插入图片描述

    但是需要下载对应的版本的node,主要是用来管理电脑上的多个node版本。其他功能如下可以使用nvm --help,比如:查看当前的计算机位数和node位数,安装install,关闭(打开)版本管理,安装node版本、设置默认版本等。

2.npm全局安装和局部安装

    至于npm的全局安装和局部安装,需要明确如下几种用法:

(1)npm init -y创建依赖说明文件:
此图像的alt属性为空;文件名为image-1-1024x290.png
(2)npm install * 局部安装依赖,也就是说安装完成之后,依赖可以在不同的文件夹中使用。
此图像的alt属性为空;文件名为image-2-1024x398.png
    需要注意的是vscode中的集成终端会报错,需要使用windows自带的cmd工具,可能是由于文件命名含有中文导致的。–dev说明是生产环境安装,-save指的是保存依赖信息到package.json文件里面。这里不是全局安装,因此需要重新调整路径到gulp目录下,也可以手动修改package.json文件,修改脚本,scripts部分,修改为:“test”:“gulp -v”,然后执行npm run test,执行的流程是先找当前目录下的gulp,如果找不到,那么去找node_modules目录下的gulp文件。

(3)npm install * -g 全局安装,需要明确全局安装的位置为:C:\Users\用户名\AppData\Roaming\npm\node_modules。也就是意味着删除依赖还可以直接去这个目录直接手动删除依赖。

(4)npm list 查看安装的依赖之间的内部依赖情况,因为一个包可能还会使用到其他的依赖包,也就解释了安装jquery很少,但是安装gulp却安装了很大一个安装包。npm list | grep gulp只展示当前环境下包的版本,也就是做一个依赖包的筛选。

3.开发环境安装与生产环境安装

    其实安装依赖包的时候不仅可以区分全局和局部,还可以直接区分开发和生产安装。-S安装到生产环境,-D安装到开发环境。在运维上,一般拿到git文件之后,只需要使用npm i --production只安装生产环境下的依赖。

4.其他常用的npm语法

(1)查看某个依赖的具体版本:npm view * versions;

(2)安装具体的某个依赖的具体版本:npm i (依赖名称)@(版本号)-S(或者-D)

5.版本号里面的讲究

    一般软件版本号分为三个等级(..*),从左到右依次是major,minor,patch。major一般是用于大的版本更新,比如系统整改;minor主要是用于主版本号不变的情况下来增加新功能,patch一般是用来debug(一般情况加patch为偶数表示稳定的patch,奇数表示不稳定的patch)。其次,安装版本的时候我们会你发现这个:
此图像的alt属性为空;文件名为image-3.png
这里面有一个上箭头,其实^表示的是只锁定主版本号(默认就是取最新的版本号),~表示锁定主版本号和次版本号(默认patch最新),*表示的是锁定到patch。npm outdate查看当前使用的依赖的过期情况。

6.npm上传包

    我们不仅能够使用别人上传的数据包,还能够自己写npm依赖包供其他人使用。下面简单说一下如何发布包管理工具:
    由于main.js中设置的入口函数(main)为index.js,因此首先需要在index.js中写必要的函数导出代码,这样方便给别人使用,比如如下程序:

const _ = require("lodash");
function myFunction(arr) {    
	return _.chunk(arr, 2);
}
module.exports = myFunction;

使用案例如下(同目录下使用test.js,需要npm install lodash依赖,执行node test.js):

let test = require("./index.js");
console.log(test([1, 2, 3, 4]));

包的代码测试完成之后,接下来就是发布代码了。首先需要使用npm adduser来发布作者信息,结果报错如下,主要是因为使用的镜像不对:(这里用的是淘宝镜像)
此图像的alt属性为空;文件名为image-5.png
    解决方法是切换npm的镜像:npm config set registry https://registry.npmjs.org,然后根据提示输入账号、密码和邮箱验证码(没有账号注册一个:https://www.npmjs.com/)。接下来修改一下必要的配置信息:
此图像的alt属性为空;文件名为image-6.png
最后执行npm publish就能够发表,发表之后展示如下:
此图像的alt属性为空;文件名为image-7-1024x576.png
    最后,对于发布的npm包的使用,和正常的npm包的使用一致,先npm install 安装一下,然后直接引入moonlight1224依赖,然后直接调用就行。修改之后直接使用npm publish就能够修改已上传的版本了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Node.js入门笔记(一)——环境问题和版本号问题 的相关文章

随机推荐

  • IDEA常用插件之代码扫描SonarLint

    文章目录 SonarLint 查找隐藏的bug 下载安装插件 扫描代码 查看结果 SonarLint 查找隐藏的bug 下载安装插件 扫描代码 项目右键 gt Analyze gt Analyze with SonarLint 查看结果 扫
  • Colmap学习三:后端Initialization部分(基础矩阵F、本质矩阵E和单应矩阵H)

    算矩阵的基础知识 解析本质 基础 单应矩阵的自由度 1 寻找初始像对 1 1手动选择ID 1 2自动筛选 prior focal length存在情况下 开始筛选 匹配点数由小到大排序 第二张候选影像的匹配数目大于init min num
  • 什么是JSP

    JSP 与 PHP ASP ASP NET 类似 是一种运行在web端的语言 JSP 全称Java Server Pages 是由 Sun Microsystems 公司倡导和许多公司参与共同创建的一种使软件开发者可以响应客户端请求 而动态
  • 数据库 索引

    多数数据库 使用 B 树 Balance Tree 的结构来保存索引 B 树 最上层节点 根节点 最下层节点 叶子节点 两者之间的节点 中间节点 B 树 显著特征 从根节点 到各个叶子节点的距离都是相等的 如此 检索任何值时 都经过相同数目
  • 详解map、set、multimap、multiset的使用

    作者 阿润菜菜 专栏 C 目录 前言 set multiset的使用 1 set 2 multiset 3 什么时候应该使用multiset而不是set map multimap的使用 1 map 2 multimap 3 什么时候应该使用
  • 手把手教你创建的私人git仓库(Linux CentOS7 )

    手把手教你创建的私人git仓库 Linux CentOS7 安装git yes yum install git core 配置用户名和邮箱 此处以 lrq lrq email com 为例 git config global user na
  • js 实现rgb和十六进制的代码转化

    十六进制转化为RGB function set16ToRgb str 十六进制颜色代码的正则表达式 var reg 0 9A Fa f 3 0 9A Fa f 6 test 检测str是否匹配十六进制颜色的模式 if reg test st
  • python爬取英雄联盟所有皮肤

    import jsonpath import requests import json import os import time 程序开始时间 start time time from tqdm import tqdm from time
  • chrome应用商店打不开,怎么下载vue-devtools并安装呢?

    相信很多朋友曾经像我一样 安装vue devtools时总会从各种渠道最后综合转到chrome应用商店的网址 而国内chrome网页是打不开的 肿么办 一 下载 1 本地建立文件夹 自由命名 比如我的为了区分自己的和网上下载的 起名为vue
  • TypeScript 基础类型 —— void

    声明为 void 类型表示没有任何类型 当一个函数没有返回值时 通常其返回值会声明为 void 类型 function gretter void console log 123 编译成js function gretter console
  • 使用Python实现K均值聚类算法

    使用Python实现K均值聚类算法 K均值聚类算法是一种经典的无监督学习算法 它将数据集分为K个簇 每个簇中的数据点与同一簇中心点的距离最小 不同簇的数据点之间的距离较大 该算法常用于数据挖掘 图像处理等领域 以下是其优缺点和Python实
  • Electron+Vue入门(二)vue-cli3.0+electron项目初始化

    第一步 用vue cli3 0创建一个项目 打开命令行工具 vue create demo 选择默认 安装完成 第二步 安装vue cli plugin electron builder 进入项目 cd demo 进入vue项目管理器 vu
  • 怎么样理解同步清零和异步清零?

    DA专业论坛 通用设计 求助 大家是怎么样理解 同步清零和 异步清零的 查看完整版本 求助 大家是怎么样理解同步清零和异步清零的 mxflying 2005 4 20 03 45 求助 大家是怎么样理解 同步清零和 异步清零的 本人对 同步
  • ROS-kinetic中Gazebo中的机械臂仿真报错解决

    1 警告 其实是错误 但也要解决 WARN 1682069601 434351 0 000000 Controller Spawner couldn t find the expected controller manager ROS in
  • 有哪些因素影响服务器的访问速度

    在网络环境下 根据服务器提供的服务类型不同 分为文件服务器 数据库服务器 应用程序服务器 WEB服务器等 一些对服务器的了解不够深入的朋友 会认为服务器的配置越高 服务器的访问速度就会越快 这句话有一定的道理 但是服务器的配置高低只是影响服
  • 计算机视觉项目实战-图像特征检测harris、sift、特征匹配

    欢迎来到本博客 本次博客内容将继续讲解关于OpenCV的相关知识 作者简介 目前计算机研究生在读 主要研究方向是人工智能和群智能算法方向 目前熟悉python网页爬虫 机器学习 计算机视觉 OpenCV 群智能算法 然后正在学习深度学习的相
  • android中下拉菜单的制作(详解)

    在我们的android中下拉菜单的制作有两种的方法 1 一种的方式就是通过我们的布局文件的方法制作 2 第二种方式就是通过我们的java代码的方式制作 第一种方式
  • deepin 20.2版本亮度调节问题暂时解决方案

    可在设置 gt 键盘和语言 gt 快捷键 中设置自己需要的快捷键 建议alt 1和alt 2这两个 与现有快捷键没有冲突 使用原来的快捷键会提示冲突 如果覆盖了设置可能会使原来的快捷键失效 分别添加下面的命令 降低亮度 echo your
  • Anaconda 换源与更新

    参考 Windows下Anaconda安装 换源与更新 里面很详细介绍了 conda 的更新 与 Anaconda 的更新
  • Node.js入门笔记(一)——环境问题和版本号问题

    Node js入门笔记 一 1 node js的版本管理工具 nvm 2 npm全局安装和局部安装 3 开发环境安装与生产环境安装 4 其他常用的npm语法 5 版本号里面的讲究 6 npm上传包 其实就是寒假比较无聊搭了这个自己的博客网站