Navi/frontend/node_modules/postcss-load-config/src/req.js
小龙 a1951c3aeb feat: 导航收藏网站 v1.0
功能:
- 网站收藏管理(添加/编辑/删除/收藏)
- 分类管理(支持自定义图标和颜色)
- 搜索功能
- 点击统计
- 现代暗色主题 UI

技术栈:
- 后端: Python Flask + MySQL
- 前端: React + Vite + Tailwind CSS
- 数据库: MySQL (192.168.8.160)
- 端口: 后端 5003, 前端 5173
2026-04-06 10:40:43 +00:00

63 lines
1.2 KiB
JavaScript

// @ts-check
const { createRequire } = require('node:module')
const { pathToFileURL } = require('node:url')
const TS_EXT_RE = /\.[mc]?ts$/
let tsx
let jiti
let importError = []
/**
* @param {string} name
* @param {string} rootFile
* @returns {Promise<any>}
*/
async function req(name, rootFile = __filename) {
let url = createRequire(rootFile).resolve(name)
try {
return (await import(`${pathToFileURL(url)}?t=${Date.now()}`)).default
} catch (err) {
if (!TS_EXT_RE.test(url)) {
/* c8 ignore start */
throw err
}
}
if (tsx === undefined) {
try {
tsx = await import('tsx/cjs/api')
} catch (error) {
importError.push(error)
}
}
if (tsx) {
let loaded = tsx.require(name, rootFile)
return loaded && '__esModule' in loaded ? loaded.default : loaded
}
if (jiti === undefined) {
try {
jiti = (await import('jiti')).default
} catch (error) {
importError.push(error)
}
}
if (jiti) {
return jiti(rootFile, { interopDefault: true })(name)
}
throw new Error(
`'tsx' or 'jiti' is required for the TypeScript configuration files. Make sure it is installed\nError: ${importError
.map(error => error.message)
.join('\n')}`
)
}
module.exports = req