Mac电脑安装nvm(node包版本管理工具)
方法一:通过Homebrew安装(推荐)
安装 Homebrew: 如果您还没有安装Homebrew,首先需要安装它。打开终端(Terminal.app)并运行以下命令:(官网地址:https://brew.sh/zh-cn/)
12341.官网提供的链接(没有vpn的话执行不成功)/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"2.国内下载地址/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
按照步骤安装完成就可以了.
使用Homebrew安装 NVM: 安装完 Homebrew 后,接着使用以下命令来安装 NVM:
打开终端zsh,执行:
1brew install nvm # 执行完成就代表nvm已经安装了,但是还需要配置环境变量
配置环境变量:
...
web部署成功,通知用户刷新界面 实践
使用场景 当我们成功部署web应用之后,由于页面没有及时刷新,导致数据存在差异 无法体验到最新的功能等问题。
代码实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576interface Options { timer?: number}export class Updater { oldScript: string[] // 存储第一次值也就是script 的hash 信息 newScript: string[] // 获取新的值 也就是新的script 的hash信息 dispatch: Record<string, Array<() => void>> // 小型发布订阅通知用户更新了 timer: NodeJS.Timeout | null = null constructor(op ...
Github图床搭建,结合Picgo与jsdelivr的免费cdn加速
话不多说 ,直接开整!
jsdelivr加速地址:
12https://cdn.jsdelivr.net/gh/Github用户名/仓库名@masterhttps://fastly.jsdelivr.net/gh/Github用户名/仓库名@master
注意:这两个地址偶尔不好使,自己看哪个好用用哪个。
创建一个GitHub仓库:
进入你的GitHub首页,在右上角你会找到一个➕,在下拉菜单中选取”New repository”选项
.yjwgemnauzfv{}
按需填写相关信息,创建仓库:
获取一个GitHub的token用以picgo的身份验证,在你的GitHub主页,右上角点击你的头像,在展示的抽屉中选择”Settings”
然后把左侧选项框滑到最下面,选择”Developer settings”,再从左侧点击”Personal access token”下拉展开,选择”Tokens(classic)”,然后再点击右上角的”Generate new token”,选择”Generate new token(classic)”
按步骤填写 ...
为什么vue template中不用加.value?
vue3 中定义的 ref 类型变量,在 setup 中使用这些变量是需要带上.value 才可以访问的,但是在 template 中却可以直接使用。why?你可能会说 vue 自动进行 ref 解包了,那具体是如何实现的的?
proxyRefsvue3 中有个方法 proxyRefs,这属于底层方法,在官方文档中并没有阐述,但是 vue 里是可以导出这个方法!
例如:
12345678910111213141516<script setup lang="ts">import { onMounted, ref, proxyRefs } from "vue";const user = { name: "James", age: ref(18),};const _user = proxyRefs(user);onMounted(() => { console.log(_user.name); console.log(_user.age); console ...
构建发布一个npm
前提
下载 Node.js 和 NPM。
12node -v npm -v
选一个好的包名。包名必须是 pascal-case 并且全部小写。因为 NPM 上有 700k+ 的包,所以你需要在构建之前先去 www.npmjs.com/ 查询你的包名有没有被使用。在本文中,我取了 irene-awesome-gretter。
基本构建
选择一个合适的名字创建包文件夹。
1mkdir irene-awesome-greeter && cd irene-awesome-greeter
新建
1.gitignore
文件并写入 node_modules,新建
1README
文件。
12echo "node_modules" >> .gitignoreecho "# Irene Awesome Greeter" >> README.md
Git 初始化包并关联远程仓库。下面 Git Repository Url 是远程仓库的 Url。
1234git initgit add . && ...
Monorepo与pnpm
一、什么是pnpmpnpm又称 performant npm,翻译过来就是高性能的npm。
1.节省磁盘空间提高安装效率pnpm通过使用硬链接和符号链接(又称软链接)的方式来避免重复安装以及提高安装效率。 **硬链接**:和原文件共用一个磁盘地址,相当于别名的作用,如果更改其中一个内容,另一个也会跟着改变 符号链接(软链接):是一个新的文件,指向原文件路径地址,类似于快捷方式 官网原话:
当使用 npm 时,如果你有 100 个项目,并且所有项目都有一个相同的依赖包,那么,你在硬盘上就需要保存 100 份该相同依赖包的副本。然而,如果是使用 pnpm,依赖包将被存放在一个统一的位置,因此: 1.如果你对同一依赖包需要使用不同的版本,则仅有 版本之间不同的文件会被存储起来。例如,如果某个依赖包包含 100 个文件,其发布了一个新 版本,并且新版本中只有一个文件有修改,则pnpm update 只需要添加一个新文件到存储中,而不会因为一个文件的修改而保存依赖包的所有文件。 2.所有文件都保存在硬盘上的统一的位置。当安装软件包时,其包含的所有文件都会硬链接自此位置,而不会占用额外的硬盘空间 ...
使用sequelize-cli管理数据库
安装
sequelize-cli 的依赖是 sequelize sequelize的依赖是mysql2 需要自己手动安装
123npm i sequelize-cli --save-devnpm i sequelizenpm i mysql2
查看版本
12npx sequelize-cli --versionnpx sequelize --version
查看所有命令
1npx sequelize --help
123456789101112131415161718192021222324252627282930313233Sequelize CLI [Node: 10.21.0, CLI: 6.0.0, ORM: 6.1.0]sequelize <指令>指令: 带db的都是操作数据库的指令 sequelize db:migrate 运行待处理的迁移 sequelize db:migrate:schema:timestamps:add 更新迁移表以包含时间戳 sequelize ...
使用 Docker 运行 MySQL
使用 Docker +Mysql使用Docker来运行MySQL。这样在 Windows 与 macOS 上,甚至在 Linux 服务器上,它们的运行环境都是一致的。
1.进入Docker官网后,https://www.docker.com/get-started/,直接下载安装。
2.配置中国镜像
123"registry-mirrors": [ "https://xelrug2w.mirror.aliyuncs.com"]
3.使用 docker compose
接着进入项目根目录中,新建一个文件,叫做docker-compose.yml。千万要注意,一定要在项目根目录中,放在其他地方会找不到的。然后将下面的配置复制进去,这就是MySQL的一个简单配置了。
123456789101112131415services: mysql: image: mysql:8.3.0 command: --default-authentication-plugin=mysql_native_password ...
深入理解 Node.js 中的 module.exports 和 exports
前言在上一篇文章中,我们介绍了 JavaScript 模块系统的发展历程,其中提到了 CommonJS 是 Node.js 默认的模块系统。在 CommonJS 中,我们使用 module.exports 和 exports 来导出模块内容,使用 require 来导入模块。但很多初学者对 module.exports 和 exports 的关系和区别感到困惑。本文将深入剖析这两个对象的关系和正确使用方式。
理解 module 对象在每个 Node.js 文件中,都有一个内置的 module 对象。这个对象包含了当前模块的相关信息。
让我们通过一个简单的例子来观察 module 对象:
12// example.jsconsole.log(module);
运行这个文件:
1node example.js
你会看到类似以下的输出:
12345678910Module { id: '.', path: '/path/to/your/file', exports: {}, parent: null, fil ...
JavaScript CommonJS 和 ES Module 理解与应用
前言在现代 JavaScript 开发中,模块化是组织代码的重要方式。随着 JavaScript 生态的发展,出现了多种模块系统,其中 CommonJS 和 ES Module 是最为重要的两种。CommonJS 主要用于 Node.js 环境,而 ES Module 是 ECMAScript 官方标准的模块系统,逐渐在浏览器和 Node.js 中得到广泛支持。本文将深入探讨这两种模块系统的区别、使用场景以及它们解决了哪些问题。
什么是 CommonJSCommonJS 是 Node.js 中默认的模块系统,它是一种同步的模块加载机制。在 CommonJS 中,每个文件都是一个模块,具有独立的作用域。通过 require() 函数导入模块,通过 module.exports 或 exports 导出模块。
CommonJS 基本语法123456789101112131415161718// math.js - 导出模块function add(a, b) { return a + b;}function subtract(a, b) { ret ...








