• 【学习笔记04】认识npm


    一、认识npm

    •  一个基于node的第三方包(模块)管理器

    1、npm 的安装

    • 安装node的时候,就安装过了, 我们可以直接使用

    2、npm 的检测

    • 打开 cmd
    • 输入指令: npm -v ||  npm --version

    3、pm 的作用

    • 帮助我们去下载安装第三方模块(包)
    • 帮助我们上传自己的模块(包), 到第三方仓库(全世界通用的)

    二、npm的初始化

    1. 打开cmd需要在项目所在的根目录

    2. 输入 npm init

    • package name: 项目名(尽量纯英文 ||  纯拼音)
    • version: 项目第一次发布的版本号, 初次版本号 0.0.1   0.1.0
    • description: 对项目的描述
    • entry point: 项目的入口文件(一般是后端使用)

    3. 输入 npm init --yes  ||  npm init -y

    4. 输入完成后,会在项目根目录里创建一个文件 package.json

    • 这个文件就是对我们这个项目的一些描述
    • 以及安装过的第三方包

    三、npm 下载指令

    1. 安装命令 npm install 包名 || npm i 包名

    2. 一般下载默认是最新的稳定版

    • npm 下载完毕之后, 会在项目根目录创建一个node_modules
    •  所有的第三方都在这个目录内

    3. 查询包的可安装版本

    4. package.json

    • 只会记录一个 包的版本, 后续安装的会顶替掉之前安装

    5. 安装指定版本的包

    • npm install 包名@版本号

    6. 卸载第三方包

    • 卸载命令 npm uninstall 包名 || npm un 包名

     7. 统一下载所有依赖

    • 将来项目传输时因为 node_modules 文件过多, 导致传输很慢,所以通常都会删掉 node_mdoules (package.json一定要留下)
    • 其他开发拿到这个没有node_modules 的目录(项目)的时候,找到项目根目录(也就是 package.json 在的目录)
    • 打开 cmd,输入指令 npm install || npm i

    8. npm 清除缓存

    • 输入命令 npm cache clear -f  清除完成, 没有任何反馈

    •  清除本地缓存(win)

    文件查找: C盘  --->  用户(Users)  --->  用户名   ---> AppData(隐藏文件)  ---> Roaming  ---> npm-cache,右键点击删除即可

     9. npm 切换淘宝源

    •  npm config set registry https://registry.npmmirror.co

    四、第三方模块

    (一)lodash

    1、第三方模块使用流程

    1. 下载并导入  npm i lodash
    2. 按照规范去使用库
    1. // _ 只是一个变量名, 开发时使用这个库习惯这样叫
    2. const _ = require("lodash");
    3. console.log(_);

    • 引入第三方模块时, 先把这个模块当成内置模块去引入, 如果没有按照第三方模块引入会先去 module.paths内, 按照元素排列顺序, 去一个一个查找 
    1. console.log(module)
    2. /*
    3. Module {
    4. id: '.',
    5. path: 'E:\\yizhiyang\\JavaScript2\\date1201\\teacher\\code',
    6. exports: {},
    7. filename: 'E:\\yizhiyang\\JavaScript2\\date1201\\teacher\\code\\01_使用node第三方包.js',
    8. loaded: false,
    9. children: [],
    10. paths: [
    11. 'E:\\yizhiyang\\JavaScript2\\date1201\\teacher\\code\\node_modules',
    12. 'E:\\yizhiyang\\JavaScript2\\date1201\\teacher\\node_modules',
    13. 'E:\\yizhiyang\\JavaScript2\\date1201\\node_modules',
    14. 'E:\\yizhiyang\\JavaScript2\\node_modules',
    15. 'E:\\yizhiyang\\node_modules',
    16. 'E:\\node_modules'
    17. ]
    18. }
    19. */

     2、lodash方法的使用

    1. const _ = require("lodash");
    2. // 创建一个变量, 变量是一个数组, 数组是两个对象
    3. var objects = [{ a: 1 }, { b: 2 }];
    4. // 深拷贝这个对象, 将深拷贝后的值, 放到变量deep
    5. var deep = _.cloneDeep(objects);
    6. var deep = objects
    7. // 对比 deep[0] 和 objects[0]
    8. console.log(deep[0] === objects[0]); ;
    9. console.log(deep[0]);
    10. console.log(objects[0]);
    11. // 判断第一个参数是否大于第二个参数
    12. console.log(_.gt(3, 1));

    (二)nodemailer

    作用:Nodemailer 是一个简单易用的 Node.JS 邮件发送模块

             1. 下载并导入 (npm i  nodemailer)

             2. 按照规则去使用

    1、QQ邮箱授权码的获取方法 

     2、代码实现

    1. 配置项查找
    2. 1. node_modules
    3. 2. nodemailer
    4. 3. lib
    5. 4. well-known
    6. 5. services.json
    7. smtp 获取方式
    8. 1. 到邮箱内
    9. 2. 设置
    10. 3. 账户
    11. 4. 开启 POP3/SMTP服务 (需要发短信验证)
    1. //导入第三方库
    2. const nodemailer = require('nodemailer');
    3. // 创建一个邮递员 帮助我们发邮件
    4. let transporter = nodemailer.createTransport({
    5. domains: ['qq.com'],
    6. host: 'smtp.qq.com',
    7. port:465,
    8. secure: true,
    9. // 发送者的邮箱
    10. auth: {
    11. //发送者的账户和授权码
    12. //个人邮箱账户
    13. user: '3255443166@qq.com',
    14. // smtp授权码,到邮箱设置下获取, 这个不是登陆密码
    15. pass: 'yhhgimfreaskdbgb'
    16. }
    17. })
    18. transporter.sendMail(
    19. {
    20. from:'3255443166@qq.com', // from 发送者昵称和地址
    21. /**
    22. * 接收者的邮箱地址
    23. * 可以是一个字符串邮箱
    24. * 也可以是一个数组 ['', '', '']
    25. */
    26. to:'1104494454@qq.com',
    27. subject: 'hello', //邮件主题
    28. // txt:'',
    29. html:` //比较常用
    30. 这是我给你发的邮箱

    31. `
    32. },
    33. (error, info) => {
    34. if(error){
    35. return console.log(error);
    36. }
    37. console.log('邮箱发送成功ID:', info.messageId);;
    38. }
    39. )

    (三)认识nodemon

    • 作用: 替代 node 文件名 这个命令
    • 使用时间: 开发的时候 
    • 需要全局安装:npm i nodemon -g
    • 启动命令:nodemon 文件名
    • 这种启动方式具有监听的效果, 只要文件改变并保存, 然后就会自动重启服务器

  • 相关阅读:
    从面试官角度分析:面试功能测试工程师主要考察哪些能力?
    Java设计模式教程
    MySQL进阶—从零到入土
    记录--Vue中前端导出word文件
    论文解读(SEP)《Structural Entropy Guided Graph Hierarchical Pooling》
    ssm基于java的儿童成长记录系统
    【Linux】自动化构建工具-make/Makefile详解
    java毕业设计基于互联网的图书管理系统—借阅管理子模块(附源码、数据库)
    【算法刷题】1 Python基础篇
    Linux 标准IO
  • 原文地址:https://blog.csdn.net/m0_58190023/article/details/128118270