安装node js(安装nodejs成功,但是json-server -v报错)

安装node js(安装nodejs成功,但是json-server -v报错)svg xmlns http www w3 org 2000 svg style display none svg

大家好,我是讯享网,很高兴认识大家。



 <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"></path> </svg> 

讯享网

(1)概念

官网解释:Node.js是一个基于 Chrome V8 引擎 的 JavaScript 运行时环境。

简单来说:node.js就是前端的后端,可以当Web 服务器,但更倾向处理业务逻辑。

具体的说:

Node.js 就是运行在服务端的 JavaScript。
Node.js 是一个基于Chrome JavaScript 运行时建立的一个平台。
Node.js 是一个事件驱动I/O服务端JavaScript环境,基于Google的V8引擎,V8引擎执行Javascript的速度非常快,性能非常好。

(2)特性

Node.js可以解析JS代码(没有浏览器安全级别的限制,可以跨域请求)提供很多系统界别的API。

文件的读写(fs)
进程的管理(process)
网络通信(http/https)

另:

不能跨域浏览器报的错:

在这里插入图片描述
讯享网
node.js的回调函数有一个特点:错误优先回调,也就是第一个参数是err,第二个参数才是数据data

使用node命令可以直接执行js文件,原来如果要执行js文件必须要依赖浏览器,即将js文件引入html文件,再去浏览器**问html页面js才被执行。而现在有了node给js提供运行环境只需要在命令终端输入:node js文件命令即可执行该js文件。

(1)NVM(node version management )

nvm:是一个nodejs的版本管理工具。通过它可以安装和切换不同版本的nodejs。下面列出下载、安装及使用方法。

Mac安装
https://github.com/nvm-sh/nvm/blob/master/README.md

Windows安装
nvm-windows
nodist

安装/管理nodejs
查看本地安装的所有版本,有可选参数available,显示所有可下载的版本:

讯享网

安装,命令中的版本号可自定义,具体参考命令1查询出来的列表:

 

使用特定版本:(只针对于当前终端生效)

讯享网

修改默认版本:(对于所有终端生效 )

 

卸载:

讯享网

命令提示
nvm arch :显示node是运行在32位还是64位。

nvm install [arch] :安装node, version是特定版本也可以是最新稳定版本latest。可选参数arch指定安装32位还是64位版本,默认是系统位数。可以添加–insecure绕过远程服务器的SSL。

nvm list [available] :显示已安装的列表。可选参数available,显示可安装的所有版本。list可简化为ls。

nvm on :开启node.js版本管理。

nvm off :关闭node.js版本管理。

nvm proxy [url] :设置下载代理。不加可选参数url,显示当前代理。将url设置为none则移除代理。

nvm node_mirror [url] :设置node镜像。默认是https://nodejs.org/dist/。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。

nvm npm_mirror [url] :设置npm镜像。https://github.com/npm/cli/archive/。如果不写url,则使用默认url。设置后可至安装目录settings.txt文件查看,也可直接在该文件操作。

nvm uninstall :卸载指定版本node。

nvm use [version] [arch] :使用制定版本node。可指定32/64位。

nvm root [path] :设置存储不同版本node的目录。如果未设置,默认使用当前目录。

nvm version :显示nvm版本。version可简化为v。

(2)NPM(node package management )

1–全局安装/卸载依赖包
 

Windows: C:퇬用户名AppDataRomaing pm ode_modules

2–本地(局部)安装依赖包
讯享网

简写:

 

非常常用的第三方工具包lodash、underscore
项目中的package.json是对项目或者模块包的描述,里面包含许多元信息。
npm init [-y] //生成package.json文件,-y的意思就是一切都yes。

3–查看项目中已安装的包

npm list 查看项目中所有包名称和版本号,以及包与包之间的层级关系
npm list | grep pkgName 查看指定包的版本号,以及和该包相关层级关系
npm view pkgName versions 查询指定package包的所有版本
npm info pkgName 查询指定依赖包的详细信息
pkgName -v 查询指定包的版本号

4–更新项目中已安装的包
5–关于版本号

例:^13.4.6/~13.4.6 /13.4.6 /*
—- major(主版本号):13,minor(次版本号):4,patch(补丁号):6
注:patch,如果是偶数一般是指稳定的,如果是奇数表示不稳定的
—- ^ 符号表示对版本进行适配,只锁定主板号,也就是主板号不变,其他进行适配
—- ~ 表示锁定主版本号和次版本号,patch适配
—- 版本号前面为空表示锁定主版本号、次版本号、补丁号
—- * 符号表示包的最新版本

6–清除缓存
讯享网
7–npm脚本

什么是npm脚本?
npm允许在packsge.json文件中,使用scripts字段定义脚本命令。通过npm run key执行
在这里插入图片描述
在这里插入图片描述

执行顺序
如果npm脚本里需要执行多个任务,那么需要明确它们的执行顺序。

① & 符号表示并行执行,执行顺序不确定,按照哪个文件先执行完的来排序
在这里插入图片描述
② && 符号表示串行执行,按照从做左到右的顺序执行文件(先执行script1.js在执行script2.js文件)
在这里插入图片描述

简写脚本:start、test
scripts脚本中有几个特殊的简写脚本:start、test。在命令终端中执行这两个脚本时不需要写run,直接输入npm start/test即可运行npm脚本.

访问package.json中的配置变量,前缀npmpackage

①在package.json 文件内访问
Windows使用%%,mac使用\(&#xff0c;前缀npm_package_访问的变量名[_key]。</p> <p>windows:<br /> <img src="https://i-blog.csdnimg.cn/blog_migrate/53954cc1e4db83d114f48de59b.png" alt="在这里插入图片描述" /><br /> mac:<br /> <img src="https://i-blog.csdnimg.cn/blog_migrate/a16ada90fa212e7974ee371d.png" alt="在这里插入图片描述" /><br /> 运行结果&#xff1a;<br /> <img src="https://i-blog.csdnimg.cn/blog_migrate/d0fe61e3a52abe3ff178cc40f.png" alt="在这里插入图片描述" /></p> <p>②外部文件访问package.json中的配置变量</p> <p>script.js:<br /> <img src="https://i-blog.csdnimg.cn/blog_migrate/a15d0bae3074db9ef85ea26449.png" alt="在这里插入图片描述" /><br /> <img src="https://i-blog.csdnimg.cn/blog_migrate/96a3f6f690fcda1186b834ed92e0ce9e.png" alt="在这里插入图片描述" /><br /> 运行结果&#xff1a;<br /> <img src="https://i-blog.csdnimg.cn/blog_migrate/3ea389af860b5c3434eb598f20.png" alt="在这里插入图片描述" /></p> <h4>&#xff08;3&#xff09;NRM&#xff08;npm registry manager &#xff09;</h4> <h5>1–手动切换源</h5> <p>查看当前源&#xff1a;</p> <pre></pre> <p>切换淘宝源&#xff08;最新&#xff09;&#xff1a;</p> <pre></pre> <h5>2–NRM管理源</h5> <p>NRM是npm的镜像管理源工具&#xff0c;有时候国外资源太慢&#xff0c;使用这个就可以快速地在npm源间切换。</p> <p><strong>安装NRM</strong><br /> 需全局安装</p> <pre></pre> <p><strong>使用NRM</strong><br /> 终端输入&#xff1a;</p> <pre></pre> <p><img src="https://i-blog.csdnimg.cn/blog_migrate/67bacfe5a094c0ed2bf28c2770.png" alt="在这里插入图片描述" /></p> <p><strong>切换NRM</strong><br /> 切换taobao源&#xff1a;</p> <pre></pre> <p>切换npm源&#xff1a;</p> <pre></pre> <p>…</p> <p><strong>测试速度</strong></p> <pre></pre> <h5>3–设置代理</h5> <pre></pre> <h4>&#xff08;4&#xff09;NPX&#xff08;npm package extention&#xff09;</h4> <p>npm从5.2版开始&#xff0c;增加了npx命令。Node自带npm模块&#xff0c;所以可以直接调用npx命令。如果不行则手动安装&#xff1a;</p> <pre></pre> <p><strong>NPX的作用</strong>: 为了调用项目内部安装的模块&#xff0c;例&#xff1a;<br /> 如果项内部安装了webpack&#xff0c;目前为止通过命令的方式获取版本号有两种</p> <p>①终端直接输入&#xff1a;</p> <pre></pre> <p>②编写package.json中的scripts脚本<br /> <img src="https://i-blog.csdnimg.cn/blog_migrate/3976ae3d5898d0d047c38b98c3d32eaf.png" alt="在这里插入图片描述" /><br /> 再执行脚本&#xff1a;</p> <pre></pre> <p>以上两种用起来都比较麻烦&#xff0c;npx就是为了解决这个问题&#xff0c;所有有了第三种方式&#xff1a;</p> <p>③终端直接输入&#xff1a;</p> <pre></pre> <p><strong>原理</strong>&#xff1a;项目运行的时候&#xff0c;会到node-modules/.bin 路径下和环境变量\)PATH里面检查命令是否存在

使用时的两种情况
①如果项目本地有访问的依赖包,则直接访问,例:
项目中有webpack包则执行npx webpack -v,结果会显示webpack的版本号

在这里插入图片描述

两参数的使用
①–no-install:让npx强制使用项目本地安装模块(依赖包),不下载远程模块(依赖包) 。如果本地不存在该依赖包,就会报错。例:

 

②–ignore-existing:与之相反,如果本地有同名的模块,强制安装使用远程的模块,这样可以是该模块使用的是最新版本。

讯享网

node.js中有三类模块:内置模块,第三方模块,自定义模块

(1)内置模块

访问https://nodejs.org/docs/latest-v主版本号.x/api/,比如:path、http、https、process等等都是Node的内置模块中的,直接引入调用即可。
在这里插入图片描述

(2)第三方模块

  • 访问https://www.npmjs.com/
  • 按需安装第三方包 npm install pkgName
  • 将安装好的第三方包引入即可使用

(3)自定义模块 – 使用CommonJS规范

1–发布包

生成pakeage.json文件

 

name---------包名,包名是全网唯一的
version-------包版本号
main-----------该包的主入口,也是暴露给外面使用的接口

在这里插入图片描述

创建index.js并写入要实现的功能方法,并导出(使用CommonJS规范)

在这里插入图片描述
在这里插入图片描述

注册npm仓库账号
网站:https://www.npmjs.com/,登录已有账号邮箱

打开命令终端输入

讯享网

然后输入npm的账号密码邮箱

如果npm使用了淘宝镜像https://registry.npm.taobao.org/,则需要npm切换源

 

再次输入登录

讯享网

发布(上传)包

 

如果是有命名空间的包用:

讯享网

或者 也可通过 package.json 中的 publicConfig 字段配置声明。

 

:发布带有命名空间的包 npm 会默认为是要发布私有包,发布私有包需要另外付费。

在所需要引入该包的项目安装

讯享网

引入模块进可使用自定义的包

在这里插入图片描述

测试

 

:如果该自定义的模块中有修改,则需修改package.json中的version的版本号(比如1.0.1),再重新npm publish即可。

如何删除npm包

讯享网


1)npm unpublish 命令只能删除72小时内发布的包
2)npm unpublish 删除的包,在24小时内不能重新发布
3)发布包是慎重,尽量不要在npm上发布无意义的包

如何升级版本
① 版本号格式
格式:MAJOR.MINOR.PATCH ,值非负整数,且禁止在数字前面补 0
MAJOR:主版本号,MINOR:次版本号,PATCH::修订号

② 版本号递增逻辑
1)当有破坏性不兼容的 API 变更时,升级主版本号
2)当新增一些功能特性时,升级次版本号
3)当做一些 bug 修复时,升级修订号
当某个版本还不稳定的时候,还可能要先发布一个先行版本,具体可看 semver 规范。
可以使用 npm version 命令来修改版本号。

 

例如:

讯享网

命令行选项

–preid 指定先行版本的标识符,例如 1.2.3-rc.4 中的 rc
-m 或 --message 可以指定 commit 信息,例如 npm version patch -m "Upgrade to %s for reasons” ;
-no-git-tag-version 取消创建 git tag 和 commit 信息

2–借助 cli 工具 release-it 来自动发布包

https://blog.csdn.net/BASK2312/article/details/
在这里插入图片描述
在这里插入图片描述
其他说明
执行 npm version 命令时,会修改 package.json 、package-lock.json 的 version 字段为对应版本;若当前使用 git 来管理文件,还会创建一条 commit 信息和创建一个 tag,可通过指定 -no-git-tag-version 取消生成 commit 和 tag。

执行 npm version 前,git 工作区和暂存区确保没有文件,否则会执行失败。

(1)cross-env是什么

运行跨平台设置和使用环境变量的脚本。

(2)出现原因

当使用NODE_ENV=production来设置环境变量时,大多数Windows命令提示将会阻塞(报错),(异常是windows上的Bash,它使用本机Bash)换言之,Windows不支持NODE_ENV=production 的设置方式。

(3)解决

用cross-env可以实现使用单个命令,而不必担心平台正确设置或使用环境变量,这个包能够提供一个设置环境变量的scripts,通过Unix的方式设置环境变量,然后再Windows上也能兼容运行。

(4)安装

 

(5)使用

例子:目的是为了在执行npm脚本时能获取脚本中设置的参数的值

mac操作系统:
package.json
①scripts脚本中有一个NODE_ENV参数变量,不同的脚本NODE_ENV设置值不同
在这里插入图片描述
②分别在webpack.prod.config.js和webpack.dev.config.js 中获取NODE_ENV参数的值
在这里插入图片描述在这里插入图片描述

③终端分别执行脚本

讯享网

windows操作系统:
在windows上操作,运行npm脚本会报错,这里就需用到cross-env,使在Windows上也可以兼容运行
在这里插入图片描述
为确保在任何操作系统上都能兼容运行,取到参数的值,都加上cross-env来获取 npm脚本中参数的值

小讯
上一篇 2025-05-25 15:33
下一篇 2025-04-14 12:31

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/151552.html