视野修炼-技术周刊第115期 | 现代的 Nodejs 能力

欢迎来到第 115 期的【视野修炼 - 技术周刊】,下面是本期的精选内容简介

🔥强烈推荐

  1. 一些现代的 Nodejs 能力

🔧开源工具&技术资讯

  1. MarkItDown
  2. ReactAI

🤖AI工具&资讯

  1. 背景移除
  2. 智能图片描述生成器生成器

下面开始今年最后一期内容的介绍,预计阅读时间 5 分钟。

🔥强烈推荐

1. 一些现代的 Nodejs 能力

  1. 单测相关
js 复制代码
import assert from 'node:assert'
import fs from 'node:fs/promises'
import { mock, test } from 'node:test'
import { add } from '../src/math.js'

test('should add two numbers', () => {
  const result = add(1, 2)
  assert.strictEqual(result, 3)

  // mock 返回结果
  const mockImplementation = async (path) => {
    return 'PORT=3000\n'
  }
  const mockedReadFile = mock.method(fs, 'readFile', mockImplementation)
})
  1. watch 文件变动自动重新运行
sh 复制代码
node --watch app.js

node --watch 'lib/**/*.js' app.js
  1. Corepack 管理包管理器的工具
json 复制代码
{
  "packageManager": "yarn@2.4.1"
}
sh 复制代码
corepack enable
  1. env 文件读取
sh 复制代码
# 单个文件
node --env-file=./.env index.js

# 多个文件
node --env-file=./.env.default --env-file=./.env.development index.js
  1. esm 下提供__dirname 和 __filename

在这之前 ESM 里获取方式如下

js 复制代码
import url from 'url'
import path from 'path'

const dirname = path.dirname(url.fileURLToPath(import.meta.url))

现在可以直接使用

js 复制代码
const { dirname: __dirname, filename: __filename } = import.meta
  1. 定时器 Promise

在这之前,你会这样实现一个 sleep

js 复制代码
function sleep(ms) {
  return new Promise(resolve => setTimeout(resolve, ms))
}

现在你可以直接使用

js 复制代码
import { setTimeout } from 'timers/promises'

function sleep(ms) {
  return setTimeout(ms)
}
sleep(1000).then(() => {
  console.log('1s passed')
})

🔧开源工具&技术资讯

2. MarkItDown

将各种格式的文件转换为 Markdown 格式的在线工具,支持 Word、PDF、HTML、图片等格式。

还支持直接指定网页链接。

你可能会好奇图片怎么转 Markdown?验证了一下是转换成一段文本描述图片内容。

3. ReactAI

开源免费AI React组件构建器。

编写提示词,只需几秒钟即可创建功能完整的React组件!

浅尝了一下,效果没有 Bolt

🤖AI工具&资讯

4. 背景移除

还有另一样功能的 remove.bgremovebg.one

5. 智能图片描述生成器生成器

生成的文本可用于 img alt 属性填充,进而优化网站的 SEO。

⭐️强力推荐关注

周刊部分内容来源如下渠道,推荐大家关注。

相关推荐
小李小李不讲道理40 分钟前
「Ant Design 组件库探索」五:Tabs组件
前端·react.js·ant design
毕设十刻42 分钟前
基于Vue的学分预警系统98k51(程序 + 源码 + 数据库 + 调试部署 + 开发环境配置),配套论文文档字数达万字以上,文末可获取,系统界面展示置于文末
前端·数据库·vue.js
mapbar_front2 小时前
在职场生存中如何做个不好惹的人
前端
牧杉-惊蛰2 小时前
纯flex布局来写瀑布流
前端·javascript·css
chhanz2 小时前
git/github入门基操(终端版)
git·github
一袋米扛几楼983 小时前
【软件安全】什么是XSS(Cross-Site Scripting,跨站脚本)?
前端·安全·xss
向上的车轮3 小时前
Actix Web适合什么类型的Web应用?可以部署 Java 或 .NET 的应用程序?
java·前端·rust·.net
XiaoYu20023 小时前
第1章 核心竞争力和职业规划
前端·面试·程序员
excel3 小时前
🧩 深入浅出讲解:analyzeScriptBindings —— Vue 如何分析 <script> 里的变量绑定
前端
蓝瑟3 小时前
AI时代程序员如何高效提问与开发工作?
前端·ai编程