• node教程(二)


    1.模块化

    1.1模块化介绍

    ⭐什么是模块化与模块?
    将一个复杂的程序文件依据一定规则(规范)拆分成多个文件的过程称之为模块化。
    其中拆分出的每个文件就是一个模块,模块的内部数据是私有的,不过模块可以暴露内部数据以便其他模块使用。
    ⭐什么是模块化项目?
    编码时是按照模块一个一个编码的,整个项目就是一个模块化的项目。
    ⭐模块化好处
    下面是模块化的一些好处:
    1.防止名命冲突
    2.高复用性
    3.高维护性

    1.2模块化初体验

    新建me.js

    function timeo(){
        console.log('ing...');
    }
    
    // 暴露数据
    module.exports = timeo;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在index.js中使用me.js中的函数:

    // 导入模块
    const timeo = require('./me.js');
    
    // 调用函数
    timeo();
    
    • 1
    • 2
    • 3
    • 4
    • 5

    1.3模块暴露数据(🔺)

    模块暴露数据的方式有两种:
    1.module.exports = value;
    2.exports.name = value;

    ❗❗❗
    module.exports可以暴露任意数据
    不能使用exports=value的形式暴露数据,模块内部module与exports的隐式关系exports= module.exports={}

    function timeo(){
        console.log('ing...');
    }
    function nie(){
        console.log('hello...')
    }
    // 暴露数据
    // module.exports = timeo;
    // module.exports = {
    //     timeo,
    //     nie
    // }
    
    // exports暴露数据
    exports.timeo = timeo;
    exports.nie = nie;
    
    
    // module.exports可以暴露任意数据
    module.exports = 'i love you';
    module.exports = 521;
    
    // 2.不能使用`exports = value`的形式暴露数据
    // exports = 'iloveyou'//❌
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25

    1.4引入(导入)模块

    在模块中使用require传入文件路径即可引入文件

    const test = require('./me.js')
    
    • 1

    require使用的一些注意事项:

    • 1.对于自己创建的模块,导入时路径建议写相对路径,且不能省略./和…/
    • 2.js和json文件导入时可以不用写后缀,c/c++编写的node拓展名也可以不写后缀,但是一般用不到。
    • 3.如果导入其他类型的文件,会以js文件进行处理。
    • 4.如果导入的路径是个文件夹,则会首先检测该文件夹下package.json文件中main属性对应的文件,如果main属性不存在,或者package.json不存在,则会检测文件夹下的index.js和index.json,如果还是没找到,就会报错。
    • 5.导入node.js内置模块时,直接require模块的名字即可,无需./和…/

    1.5导入模块的基本流程

    🔺🔺🔺介绍require导入自定义模块的基本流程
    1.将相对路径转为绝对路径,定位目标文件。
    2.缓存检测
    3.读取目标代码文件
    4.包裹为一个函数并执行(自执行函数),通过arguments.callee.toString()查看自执行函数。
    5.缓存模块的值
    6.返回module.exports的值

    1.6CommonJS规范

    nodule.exports、exports以及require这些都是CommonJS模块化规范中的内容。
    而Node.js是实现了CommonJS模块化规范,二者关系有点像JS和ECMAScript.

    2.包管理工具

    2.1概念

    👉包是什么?
    package,代表一组特定功能的源码集合。
    👉包管理工具
    管理包的应用软件,可以对包进行下载安装,更新,删除,上传等操作。
    👉常用的包管理工具
    npm,yarn,cnpm

    2.2npm

    npm是node的官方内置的包管理工具。
    👉npm初始化包

    npm init
    
    • 1

    最后会生成package.json文件

    { 
      "name": "test",  
      "version": "1.0.0",
      "description": "learn npm",
      "main": "index.js",
      "scripts": {
        "test": "echo \"Error: no test specified\" && exit 1"
      },
      "author": "",
      "license": "ISC"
    }
    
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    注意:
    1.package name(包名)不能使用中文、大写、默认值是文件夹的名称,所以文件夹名称也不能使用中文和大写
    2.version(版本号)要求x.x.x的形式定义,x必须是数字,默认值是1.0.0
    3.package.json可以手动创建与修改
    4.使用npm init -y或者npm init --yes积极创建package.json

    👉npm搜索包
    搜索包的两种方式:
    1.命令行[npm s/search 关键词]
    2.网站搜索https://www.npmjs.com/

    👉下载安装包
    我们可以通过npm install和npm i 命令安装包
    npm i uniq

    // 1.导入uniq 包
    const uniq = require('uniq');
    
    // 2.使用函数
    let arr = [1,2,3,4,5,4,3,2,1];
    const result = uniq(arr);
    console.log(result);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    👉require导入npm包的基本流程
    1.在当前文件夹下node_modules中寻找同名的文件夹
    2.在上级目录中下的node_modules寻找同名的文件夹,直至找到磁盘根目录。

    2.3生产环境与开发环境

    开发环境是程序员专门用来写代码的环境,一般是指程序员的电脑,开发环境的项目一般程序员自己访问
    生产环境是项目代码正式运行的环境,一般是指正式的服务器电脑,生产环境的项目一般由每个客户都可以访问。

    2.4生产依赖于开发依赖

    在这里插入图片描述

    2.5npm全局安装

    可以通过安装选项-g进行全局安装

    npm i -g nodemon
    
    • 1

    该命令的作用是自动重启node应用程序
    ⭐1.修改windows执行策略
    windows默认不允许npm全局命令执行脚本文件,所以需要修改执行策略

    1. 以管理员身份打开powershell命令行
      在这里插入图片描述

    2. 键入命令set -ExecutionPolicy remoteSigned

    2.6npm安装包依赖

    在项目协作中有一个常用的命令就是npm i,通过该命令可以根据package.json和package-lock.json的依赖声明安装项目依赖

    npm i
    npm install
    
    • 1
    • 2

    安装指定版本的包

    ## 格式
    npm i <包名 @ 版本号>
    npm i jquery@1.11.2
    
    • 1
    • 2
    • 3

    删除依赖
    项目中可能需要删除某些不需要的包

    // 局部删除
    npm remove uniq
    npm r uniq
    // 全局删除
    npm remove -g nodemon
    
    • 1
    • 2
    • 3
    • 4
    • 5

    2.7npm配置命令别名

    通过配置命令别名可以更简单的执行命令
    配置package.json中的scripts属性:
    在这里插入图片描述
    配置完成之后,可以使用别名执行命令

    npm run server
    npm run start
    
    • 1
    • 2

    不过start别名比较特别,使用时可以省略

    npm start
    
    • 1

    补充说明:
    npm start是项目中常用的一个命令,一般用来启动项目
    npm run 有自动向上级目录查找的特性,根require函数也一样
    对于陌生的项目,我们可以通过查看scripts属性来参考项目的一些操作。

    2.8npm配置淘宝镜像

    用npm也可以使用淘宝镜像,配置的方式有两种

    • 直接配置
    • 工具配置
      ⭐直接配置
      执行如下命令:
    npm config set registry https://registry.npmmirror.com/
    
    • 1

    ⭐工具配置
    使用nrm配置npm的镜像地址npm registry manager
    1.安装nrm

    npm i -g nrm
    
    • 1

    2.修改镜像

    nrm use taobao
    
    • 1

    3.检查是否配置成功

    npm config list
    
    • 1

    检查registry地址是否为https://registry.npmmirror.com/,如果是则成功。

    3.cnpm

    3.1介绍

    cnpm是一个淘宝构建的npmjs.com的完整镜像,也称为[淘宝镜像],网址https://npmmirror.com/。
    cnpm服务器部署在国内阿里服务器上,可以提高包的下载速度。
    官方也提供了一个全局工具包cnpm,操作命令与npm大体相同。

    3.2安装

    npm install -g cnpm --registry=https://registry.npmmirror.com
    
    • 1

    3.3操作命令

    功能命令
    初始化cnpm init/cnpm init
    安装包cnpm i uniq
    安装项目依赖cnpm i
    删除cnpm r uniq

    4.yarn

    4.1yarn介绍

    yarn是由Facebook在2016推出的新的JS包管理工具,官方网址:https://yarnpkg.com/

    4.2yarn特点

    在这里插入图片描述

    4.3yarn安装

    我们可以使用npm安装yarn

    npm i -g yarn
    
    • 1

    4.4yarn常用命令

    在这里插入图片描述

    4.5yarn配置淘宝镜像

    yarn config set registry https://registry.npmmirror.com/
    
    • 1

    可以通过yarn config list查看yarn的配置项

    5、管理发布包

    5.1创建与发布

    我们可以将自己开发的工具包发布到npm服务上,方便自己和其他开发者使用:
    在这里插入图片描述

    5.2更新包

    后续可以对自己发布的包进行更新:
    在这里插入图片描述

    5.3删除包

    执行如下命令:

    npm unpublish
    
    • 1

    在这里插入图片描述

    6.包管理工具拓展

    在这里插入图片描述
    除了编程语言领域有包管理工具以外,操作系统层面也存在包管理工具,不过这个包指的是软件包
    在这里插入图片描述

    7.nvm

    nvm是用来管理node版本的工具,方便切换不同版本的node
    使用:
    nvm使用与npm差不多,下载地址https://github.com/coreybutler/nvm-windows/releases
    在这里插入图片描述

  • 相关阅读:
    Linux企业 集群批量管理-秘钥认证
    数据结构---课后习题(第一章)
    敞开心扉地说家人们,爬也要爬进互联网大厂
    【scipy 基础】--积分和微分方程
    golang——slice避坑
    【GlobalMapper精品教程】013:矢量点图层的创建及数字化案例操作
    Ubuntu 22.04.4 LTS (linux) 安装certbot 免费ssl证书申请 letsencrypt
    CSS特效001:鼠标放div上,实现旋转、放大、移动等效果
    如何骚操作通过科目一斩获高分,python带你了解~
    11.4-GPT4AllTools版本已开始对小部分GPT3.5用户内测推送
  • 原文地址:https://blog.csdn.net/qq_52986400/article/details/133972626