所谓node

如何安装请往他处

写在前面

js:脚本语言,需要有一个解析器,浏览器配备了C++编写的V8引擎充当解析器,所以浏览器可以解析js代码。
V8可以高效地转换为机器码,而nodejs就相当于把浏览器中的V8引擎抽出来了。
nodejs是写nginx的作者创造的,和nginx一样,nodejs是一个高性能、异步的服务器,同时,它又易于扩展,不必像nginx那样使用c语言去开发扩展。特点:事件驱动、非阻塞、生态圈很好-有很多开源的npm包供使用。
nodejs的特点:
20200229102215.png

1. nvm、nodejs、npm、npx 的联系和区别

20200229102215.png
  • nodejs
    是一个js的运行环境,一个能编译js代码并运行的环境,在nodejs之前,只有浏览器中的v8引擎可以做这个事情,在nodejs之后,js代码可以在任何有node环境的计算机上运行,由此,可以用js来开发web服务器(所谓的前端人员用于开发后端服务器的工具);
  • nvm:node version management
    类比anaconda,这是一个管理node版本的管理工具:本地安装了若干版本的node之后,可以通过nvm来方便地切换版本从而让不同版本node开发的项目得以运行;
  • npm:node pakage management
    node第三方库的管理工具。如在项目中需要实现一个功能(上传文件etc.),而这个功能的js代码已经有人写好了,此时,就可以通过npm来将这个js文件下载到(本地项目的)lib文件夹中,在需要时通过<script src='path.js> 引用即可,其他功能类似。但是下载下来的各种js文件之间可能存在互相依赖的关系(比如一个功能实际上有若干个js文件),而npm就是为了解决这个问题而存在的(不然直接手动下载就可以了),只要将库文件名告诉npm,npm就自动下载、管理依赖;
  • npx
    npm在下载依赖时,会在项目中建立一个node-modules的文件夹,所有的依赖都会在这个文件夹中,有需要的话就可以进入node-modules文件夹来加载相关命令。而npx命令会先到node-modules文件夹中寻找命令,如果没有则从网上下载下来再使用,然后删掉!这个操作也被称为“无侵入式地下载”。

2. nvm以及node中的各个文件

2.1 nvm安装路径中有一个settings.txt

这个settings设定了:nodejs会被下载到哪里、从哪里下载

  • root:nodejs会被下载安装到这个路径下
  • node_mirror:nodejs从这里被下载,通常是国内的镜像
  • npm_mirror:npm从这里被下载:新版本的nodejs通常安装时会顺序安装一个npm,但是旧版本的不会,需要自己手动nvm install 一个

2.2 nvm能干啥

nvm就有俩任务:①下载某个版本的nodejs;②切换线性nodejs的版本。

2.3 npm下载的东西在哪

npm install xx:xx会被下载到cmd当前目录中
npm install -g xx:xx会被下载到全局目录中

2.4 全局安装目录

通过npm config set prefix和npm config set cache来设定,这个和npm版本无关,prefix路径对所有nodejs通用。
而具体的配置会在C:\users\user_name.npmcr中,因此,除了上面的命令外,还可以通过手动更改这个文件来配置全局安装目录

2.5 某个版本nodejs的node_modules有什么用

在下载nodejs时新一些的会直接把npm顺带下载,而这个npm就会被顺势下载到被下载nodejs的node_modules中了

2.6 构建nodejs项目

构建nodejs项目有两个内容需要准备:①这个项目对应的js包;②配置文件。

  • 包的安装上面已经提到
  • 配置文件指的是“package.json”,这个文件可以通过npm init来创建,有了这个json文件,npm下载时就会把更新的内容填上去,也会知道哪些是已经下载了的
    如果是从零构建一个项目,建议自己建立一个项目对应的文件夹,在对应的目录下创建配置文件、下载第三方库

2.7 Q&A

我为什么需要多个版本的nodejs?

  • 有时候我们是需要两个版本的nodejs,就比如我的项目中需要用到v5.6.0版本的nodejs 但是webpack需要使用最新版本的(这个都是坑出来的,半天没找到原因),这就需要我用到两个版本的nodejs了。https://blog.csdn.net/my_new_way/article/details/104470723
  • Node.js 的版本更新非常快,所有有时需要在多个版本之间切换,就需要安装多个版本的 Node.js.
    https://www.jianshu.com/p/b82869a76096
    全局路径or局部路径?
    我的建议是如无必要,请使用局部路径,尤其是当你创建一个新项目而又可能不止需要维护一个项目时,这样可以最大程度避免项目之间依赖版本的冲突
    nodejs如此快速的迭代以及全局路径之间的不变难道不会有什么坏处吗
    有的,这里就详细分析了nodejs安装路径会引发的实际存在问题

参考链接

node, nvm, npm, npx的区别
npm v.s. npx
nvm的安装和使用
使用nvm管理不同版本的node
npm下载的文件在哪里
settings.txt的配置
node_modules的糟糕之处

posted @ 2022-11-16 21:34  YIYUYI  阅读(36)  评论(0编辑  收藏  举报