node介绍和安装

1、node介绍

   Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。 
    Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。 
    Node.js 的包管理器 npm,是全球最大的开源库生态系统。

2、nodejs安装

官方下载msi安装包,如:node-v12.8.0-x64.msi

MSI(Microsoft installer)文件是Windows installer的数据包,它实际上是一个数据库,包含安装一种产品所需要的信息和在很多安装情形下安装(和卸载)程序所需的指令和数据。MSI文件将程序的组成文件与功能关联起来。此外,它还包含有关安装过程本身的信息:如安装序列、目标文件夹路径、系统依赖项、安装选项和控制安装过程的属性。

安装步骤如下:

1、下载node安装包

在官网找对应的版本进行下载以往的版本 | Node.js

2、我以12.8.0为例

3、下载下来后双击进行安装

4、安装完成后,打开cmd命令窗口,输入node -v就可以看到版本信息

 5、查看npm版本,npm -v

3、npm介绍

  NPM,Node Package Manager,是随同NodeJS一起安装的包管理和分发工具,它很方便让JavaScript开发者下载、安装、上传以及管理已经安装的包。

4、npm安装

执行node包msi安装成功后,npm已经集成在node包中并一并安装

    检验是否安装成功:win+r,输入cmd回车,进入Windows命令窗口,输入npm -v,出现版本信息即安装成功

5、npm配置

在node主目录下配置 全局模块 安装路径:npm config set prefix D:\develop\nodejs\node_global

    在node主目录下配置 cache缓存 路径:npm config set cache D:\develop\nodejs\node_cache
 配置 全局模块 环境变量:我的电脑-属性-高级系统设置-高级-环境变量,进入环境变量对话框。

  ①:在系统变量下新建"NODE_PATH",“D:\develop\nodejs\node_global\node_modules\”,这种方法用来指定NODE_PATH环境变量,并且用 ; 分割多个不同的目录(引申:NODE_PATH 是 NODE 中用来 寻找模块所提供的路径注册环境变量 ,NODE_PATH 实现 多个项目 模块复用 的最佳实践方案。node 的包加载机制,从项目的根位置递归搜寻  node_modules 目录,直到文件系统根目录的  node_modules ,如果还没有查找到指定模块的话,就会去 NODE_PATH中注册的路径中查找 。基于 nodejs 的包加载路径搜索算法,我们可以 采用全局安装的方式,将我们的包安装到全局,这样,多个项目可以共享全局中的依赖包。)

    检查 NODE_PATH 是否配置成功:win+r,输入cmd回车,进入Windows命令窗口,执行npm install express -g,安装express模块成功后,输入node,进入node的REPL环境,输入require('express'),如果出现express模块相关信息即配置成功

    ②:在用户变量"PATH"末尾追加,“D:\develop\nodejs\node_global\”(引申:操作系统 PATH 环境变量作用,当系统调用一个命令的时候,就会在PATH变量中注册的路径中寻找,如果注册的路径中有就调用,否则提示命令没找到,“xxx不是内部或外部命令,也不是可运行的程序或批处理文件”,原因是没有配环境变量PATH)

    检查 PATH 是否配置成功:win+r,输入cmd回车,进入Windows命令窗口,对于已经安装成功的模块,执行相应的命令,如:npm、cnpm、vue、webpack,出现相关输出信息即配置成功

    重置npm模块的注册、管理、发布地址为cnpm:
 修改npm包管理器的registry为淘宝镜像,npm config set registry https://registry.npm.taobao.org(官方地址为registry.npmjs.org)
    重置设置代理:npm config set proxy http://server:port
 

6、问题一:不同项目对于同一模块的依赖版本不同的解决方案

如 ABC 项目使用了babel的1.x版本,项目 DEF 使用了 babel的2.x版本x版本,可以将 NODE_PATH 指定的位置中存放babel的高版本2.x版本,再将项目ABC的 node_modules 目录中放置低版本 1.x 版本。这样就解决了模块版本的差异性,因此,在实际开发中,模块存放路径的两种方式可以结合使用和配置。
 

7、npm常用命令

配置:

npm config;管理npm的配置路径

npm config ls -l;查看配置详情信息

npm config get prefix;查看全局模块安装路径,prefix 字段就是全局 base path

npm config set prefix D:\develop\nodejs\node_global;重置全局模块安装路径

npm config set cache D:\develop\nodejs\node_cache;重置全局模块缓存路径

  • 查看模块相关信息:

npm root;查看当前项目包(模块)的安装路径

npm root -g;查看系统中node全局包(模块)的安装路径

npm ls/list/la/li;查看当前路径下安装的模块

npm ls -g;查看全局安装的模块

npm init;在项目中引导创建一个package.json文件,安装包的信息可保持到项目的package.json文件中,以便后续的其它的项目开发或者他人合作使用。

npm help;查看某条命令的详细帮助

npm help install;系统在默认的浏览器或者默认的编辑器中打开本地nodejs安装包的文件(/nodejs/node_modules/npm/html/doc/cli/npm-install.html)

npm packageName -v;查看本地是否安装过某个包

npm list;查看当前目录下的包

npm list -g;查看全局目录下的包

  • 模块安装,以express模块为例:

npm install;在项目根路径下执行该命令,会在项目根路径下的 node_modules 中安装配置在 package.json 中的所有依赖包

npm install express;安装express包在命令窗口的当前目录下,默认安装最新版本,并将信息保持到项目的package.json文件中

npm install express@3.2.0;安装express包的3.2.0版本在命令窗口的当前目录下,并将信息保持到项目的package.json文件中

npm install express --global/-g;安装express模块在全局目录下

npm install express --save/-S;安装包加入到生产阶段的依赖,package.json文件的dependencies字段内容增加

npm install express --save-dev/-D;安装包加入到开发阶段的依赖,package.json文件的devDependencies字段内容增加

npm install express --save-optional/-O;安装包加入到可选阶段的依赖,package.json文件的optionalDependencies 字段内容增加

8、npm构建项目

例如,构建一个基于 webpack 模板的vue项目:

$ npm instll vue;

$ npm install --global vue-cli;vue的命令行工具

$ vue init webpack demo;核心命令

$ cd demo

$ npm instll;安装所有依赖包

$ npm run dev;运行开发阶段的项目

    例如,构建

$ npm install -g react-native-cli;React Native的命令行工具

$ react-native init demo;核心命令

$ cd demo

$ react-native run-android;运行android平台的项目

    package.json文件可以手工编写,也可以使用npm init命令自动生成。npm 的 init 命令之后,会在工程目录文件夹的根目录生成 package.json 文件,该JSON文件字段详解:

npm将该整个工程项目定义为一个 package(包),该文件定义了项目所需要的模块和配置信息,npm install 后,项目根据这个文件的配置字段下载需要的模块 以及 配置需要的运行和开发环境。

"name": "demo01",//项目名字
"version": "0.0.1",//项目版本号,大版本.次要版本.小版本

"author": "wan",//

"description": "The first react-native demo",//

"keywords": ["react-native","javascript"],//

"repository": {undefined
"type": "git",
"url": "https://path/to/url"
},
"license":"MIT",
"engines": {"node": "0.10.x"},
"bugs":{"url":"http://path/to/bug","email":"bug@example.com"},
"contributors":[{"name":"李四","email":"lisi@example.com"}],
"private": true,//
"scripts": {undefined//
    "start": "node node_modules/react-native/local-cli/cli.js start",
    "test": "jest"
},

//dependencies 和 devDependencies 字段都指向一个对象。该对象的各个成员,分别由模块名和对应的版本要求组成,表示依赖的模块及其版本范围。
"dependencies": {undefined//指定了项目运行所依赖的模块
    "react": "16.0.0-alpha.6",
    "react-native": "0.44.3",
    "react-native-deprecated-custom-components": "^0.1.0"
},
"devDependencies": {undefined//指定项目开发所需要的模块。
    "babel-jest": "20.0.3",
    "babel-preset-react-native": "1.9.2",
    "jest": "20.0.4",
    "react-test-renderer": "16.0.0-alpha.6"
},
"jest": {undefined//
    "preset": "react-native"
}
 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行时环境,它使得 JavaScript 可以脱离浏览器运行在服务器端,具有高效、异步、事件驱动等特点。Node.js 采用了单线程、非阻塞 IO 和事件驱动等技术,使得它能够处理大量并发请求,从而提高了系统的性能和吞吐量。 Node.js 的出现让 JavaScript 可以应用于服务器端开发,它不仅可以用于编写 Web 应用,还可以用于编写命令行工具、桌面应用、物联网等领域。Node.js 的生态系统非常丰富,它拥有大量的第三方模块和工具,可以帮助开发者快速构建高质量的应用程序。 Node.js 的主要特点包括: 1. 高效:Node.js 使用了 V8 引擎,它是目前最快的 JavaScript 引擎之一,可以快速编译和执行 JavaScript 代码。 2. 异步:Node.js 的事件驱动模型使得它可以处理大量并发请求,不会因为阻塞 IO 而导致系统性能下降。 3. 事件驱动:Node.js 的事件驱动模型使得它可以简单地处理各种事件,如 HTTP 请求、文件读写等。 4. 单线程:Node.js 采用单线程模型,但是通过事件循环机制可以实现并发处理,从而提高系统的性能。 5. 跨平台:Node.js 可以运行在 Windows、Linux、Mac OS X 等多个平台上,具有较好的跨平台性。 Node.js 的应用场景非常广泛,包括 Web 应用、命令行工具、桌面应用、物联网等领域。Node.js 可以用于编写高性能的 Web 应用,如实时聊天应用、实时数据更新应用等;也可以用于编写命令行工具,如 Grunt、Gulp 等;还可以用于编写桌面应用,如 Electron、NW.js 等;最近几年,Node.js 在物联网领域也有了广泛的应用,如智能家居、智能城市等。 总之,Node.js 是一个非常强大和灵活的 JavaScript 运行时环境,它可以帮助开发者快速构建高性能、高质量的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱人间

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值