NodeJS环境配置NPM&CNPM&YARN①

  • Post author:
  • Post category:其他





✨文章有误请指正,如果觉得对你有用,请点三连一波,蟹蟹支持😘

                    ⡖⠒⠒⠒⠤⢄⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸   ⠀⠀⠀⡼⠀⠀⠀⠀ ⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢶⣲⡴⣗⣲⡦⢤⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣰⠋⠉⠉⠓⠛⠿⢷⣶⣦⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢠⠇⠀⠀⠀⠀⠀⠀⠘⡇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⡞⠀⠀⠀⠀⠀⠀⠀⢰⠇⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡴⠊⠉⠳⡄⠀⢀⣀⣀⡀⠀⣸⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠰⠆⣿⡞⠉⠀⠀⠉⠲⡏⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠈⢧⡀⣀⡴⠛⡇⠀⠈⠃⠀⠀⡗⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⠀⣿⣱⠃⡴⠙⠢⠤⣀⠤⡾⠁⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⢀⡇⣇⡼⠁⠀⠀⠀⠀⢰⠃⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⣸⢠⣉⣀⡴⠙⠀⠀⠀⣼⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⠀⡏⠀⠈⠁⠀⠀⠀⠀⢀⡇⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠃⠀⠀⠀⠀⠀⠀⠀⡼⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢸⠀⠀⠀⠀⠀⠀⠀⣰⠃⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⣀⠤⠚⣶⡀⢠⠄⡰⠃⣠⣇⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⢀⣠⠔⣋⣷⣠⡞⠀⠉⠙⠛⠋⢩⡀⠈⠳⣄⠀⠀⠀⠀⠀⠀⠀
⠀⡏⢴⠋⠁⠀⣸⠁⠀⠀⠀⠀⠀ ⠀⣹⢦⣶⡛⠳⣄⠀⠀⠀⠀⠀
⠀⠙⣌⠳⣄⠀⡇   不能   ⡏⠀⠀  ⠈⠳⡌⣦⠀⠀⠀⠀
⠀⠀⠈⢳⣈⣻⡇   白嫖 ⢰⣇⣀⡠⠴⢊⡡⠋⠀⠀⠀⠀
⠀⠀⠀⠀⠳⢿⡇⠀⠀⠀⠀⠀⠀⢸⣻⣶⡶⠊⠁⠀⠀
⠀⠀⠀⠀⠀⢠⠟⠙⠓⠒⠒⠒⠒⢾⡛⠋⠁⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⠀⣠⠏⠀⣸⠏⠉⠉⠳⣄⠀⠙⢆⠀⠀⠀⠀⠀⠀⠀⠀⠀
⠀⠀⠀⡰⠃⠀⡴⠃⠀⠀⠀⠀⠈⢦⡀⠈⠳⡄⠀⠀⠀⠀⠀⠀⠀
⠀⠀⣸⠳⣤⠎⠀⠀⠀⠀⠀⠀⠀⠀⠙⢄⡤⢯⡀⠀⠀⠀⠀⠀⠀
⠀⠐⡇⠸⡅⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠹⡆⢳⠀⠀⠀⠀⠀⠀
⠀⠀⠹⡄⠹⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⣇⠸⡆⠀⠀⠀⠀⠀
⠀⠀⠀⠹⡄⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢹⡀⣧⠀⠀⠀⠀⠀
⠀⠀⠀⠀⢹⡤⠳⡄⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣷⠚⣆⠀⠀⠀⠀
⠀⠀⠀⡠⠊⠉⠉⢹⡀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡎⠉⠀⠙⢦⡀⠀
⠀⠀⠾⠤⠤⠶⠒⠊⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠙⠒⠲⠤⠽   



前言


  1. Node.js

    是一个javascript运行环境。它让javascript可以开

    发后端程序

    ,实现几乎其他后端语言实现的所有功能,可以与“`PHP、Java、Python、.NET、Ruby等后端语言平起平坐。
  2. Nodejs是基于V8引擎,V8是Google发布的开源JavaScript引擎,本身就是用于Chrome浏览器的JS解释,但是Node之父

    Ryan Dahl

    在这里插入图片描述
    把这V8搬到了服务器上,用于做服务器的软件。



开发环境搭建



官方链接:

https://nodejs.cn/node.js

(无脑下一步即可)

在这里插入图片描述

如何看是否安装成功❓

cmd → node ↓

在这里插入图片描述



NODEJS基础

网站 :

https://nodejs.cn/



NODEJS的特性

  1. Nodejs语法完全是js语法,只要你懂js基础就可以学会Nodejs后端开发
  2. NodeJs超强的高并发能力,实现高性能服务器
  3. 开发周期短、开发成本低、学习成本低



浏览器环境 VS Node环境

Node.js 可以解析JS代码(没有浏览器安全级别的限制)提供很多系统级别的API 如:文件的读写 (File System)、进程的管理 (Process)、网络通信 (HTTP/HTTPS)…

HTTP演示

const fs = require('fs')
fs.readFile('./As.png', 'utf-8', (err, content) => {
console.log(content)
})

function main(argv) {
	console.log(argv)
}
main(process.argv.slice(2))

const http = require("http")
http.createServer((req,res) => {
res.writeHead(200, {
"content-type": "text/plain"
})
res.write("hello nodejs")
res.end()
}).listen(8080)



Modules&CommonJS规范



Eg : 我们可以把公共的功能 抽离成为一个单独的 js 文件 作为一个模块,默认情况下面这个模块里面的方法或者属性,外面是没法访问的。如果要让外部可以访问模块里面的方法或者属性,就必须在模块里面通过

exports

或者

module.exports

暴露属性或者方法。

图示 ↓

在这里插入图片描述

  • CommonJS规范


    • 特点
  1. 每个文件都是一个

    单独的模块

    ,有自己的作用域,声明的变量不是全局变量(除非在模块内声明的变量挂载到global上)
  2. 模块的加载有缓存机制,当加载完一次后,后续再加载就会读取缓存中的内容
  3. 模块的加载顺序是按照代码的书写顺序来加载
  4. 仅Node环境支持
  5. 动态依赖(需要代码运行后才能确定依赖,可以在各种代码里写)
  6. 动态依赖是同步执行的(本质上就是个函数而已)
  7. 演示: exports.A=1 ==> module.exports={} ==> module.exports.A = 1
  • Modules模块化规范


    • 特点
  1. 每一个模块只加载一次, 并只执行一次,重复加载同一文件,直接从内存中读取; 每一个模块内声明的变量都是局部变量, 不会污染全局作用域; 通过

    export

    导出模块,通过“`import“导入模块
  2. 新增语法

    (import xx from ‘path')

  3. 所有环境均支持 , 同时支持静态依赖(代码运行前就要确定依赖关系)和动态依赖 (异步的(返回promise))
  4. 演示: export let a = 1; ==> import {a} from ‘path’; ==> console.log(a); //1
  5. 模块化规范使用注意

    1、package.json文件设置类型为 → “type”: “module”,

    2、开启后不能使用CommonJ规范 如 request(path)导入语法



安装淘宝镜像

  • 全局安装基于淘宝源的cnpm

说明:由于npm的服务器在海外,所以访问速度比较慢,访问不稳定 ,cnpm的服务器是由淘宝团队提供,服务器在国内,cnpm是npm镜像,一般会同步更新,相差在10分钟,所以cnpm在安装一些软件时候会比较有优势。但是cnpm一般只用于模块安装。

Npm :

npm install -g cnpm --registry=http://registry.npmmirror.com



NPM&CNPM&YARN~ORDER



NPM

  • 命令

  1. npm init

    (初始化Package.json包文件 记录包详细详细) 或

    npm init --yes

    (快速创建包文件)


  2. npm install

    包名 –g (全局安装 , 不加-g,局部安装)


  3. npm install 包名 --save-dev


    1、(–save => -S)(安装包信息将加入到

    Dependencies

    (生产阶段的依赖,也就是项目运行时的依赖,就是程序上线后仍然需要依赖))

    2、(–save-dev => -D)(安装包信息将加入到

    devDependencies

    (开发阶段的依赖,就是我们在开发过程中需要的依赖,只在开发阶段起作用。))


  4. npm list -g

    (查看已安装包 , 不加-g,列举当前目录下的安装包)


  5. npm info PackageName

    (详细信息) npm info 包名 version(获取最新版本) npm


  6. nstall PackageName@1

    (安装指定版本)


  7. npm outdated

    ( 检查包是否已经过时)


  8. npm uninstall PackageName

    ( 删除包)


  9. npm (update | up | upgrade ) PackageName

    ( 更新包)

  10. pavkage,json

    (~ & ^ & *)

    区别

    1、“dependencies”: { “md5”: “^2.1.0” } ^ 表示 如果 直接npm install 将会安md5

    2.*.* 最新版本


    2、 “dependencies”: { “md5”: “~2.1.0” } ~ 表示 如果 直接npm install 将会 安装md5

    2.1.* 最新版本


    3、“dependencies”: { “md5”: “*” } * 表示 如果 直接npm install 将会 安装 md5

    最新版本

  • 全局安装 NRM

作用:NRM (npm registry manager)是npm的镜像源管理工具,有时候国外资源太慢,使用这个就可以快速地在 npm 源间切换。

  1. 手动切换方法: npm config set registry https://registry.npm.taobao.org
  2. 安装 nrm → npm install -g nrm
  3. 查看可选的源 → nrm ls (其中,带*的是当前使用的源)
  4. 如果要切换到taobao源 → nrm use taobao
  5. 测试速度 → nrm test



CNPM

NPM镜像 图 ↓

执行命令:npm install -g cnpm –registry=https://registry.npmmirror.com



YARN

  • 安装Yarn : npm install -g yarn

  • Yarn VS npm


    1. 速度超快:

      Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。
    2. 超级安全: 在执行代码之前,Yarn 会通过算法校验每个安装包的完整性。

  • 开始新项目

  1. 初始化 yarn init

  2. 添加依赖包

    1、yarn add [package]

    2、yarn add [package]@[version]

    3、yarn add [package] –dev

  3. 升级依赖包

    yarn upgrade [package]@[version]

  4. 移除依赖包

    yarn remove [package]

  5. 安装项目的全部依赖

    yarn install



扩展内容

  • 在很多语言中都有包管理工具
语言 包管理工具
PHP composer
Python pip
Java maven
Go go mod
JavaScript npm/yarn/cnpm/other
Ruby rubyGems
  • 除了编程语言领域有包管理工具之外,操作系统层面也存在包管理工具,不过这个包指的是『

    软件包

操作系统 包管理工具 网址
Centos yum
https://packages.debian.org/stable/
Ubuntu apt
https://packages.ubuntu.com/
MacOS homebrew
https://brew.sh/
Windows chocolatey
https://chocolatey.org/

例如 Windows

在这里插入图片描述



总结


以上是个人学习Node的相关知识点,一点一滴的记录了下来,有问题请评论区指正,共同进步,这才是我写文章的原因之,如果这篇文章对您有帮助请三连支持一波



版权声明:本文为m0_61490399原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。