UNPKG

@serpent/common-cli

Version:

通用的 cli 相关的函数

33 lines (30 loc) 970 B
import Module from 'module'; import { fileURLToPath } from 'url'; import path from 'path'; /** * esm 中获取 cjs 中的 require 函数 * @param currentFileUrl 一般是 import.meta.url * @returns */ function getRequire(currentFileUrl) { return Module.createRequire(currentFileUrl); } /** * esm 中获取 cjs 中的 require.resolve 函数 * @param currentFileUrl 一般是 import.meta.url * @returns */ function getResolver(currentFileUrl) { var require = getRequire(currentFileUrl); return require.resolve.bind(require); } /** * 从 fileUrl 中解析出当前文件的路径及目录,主要用于模拟 cjs 中的 __filename 和 __dirname 变量 * @param currentFileUrl 一般是 import.meta.url * @returns */ function getPathInfoFromFileUrl(currentFileUrl) { var filename = fileURLToPath(currentFileUrl); return { filename: filename, dirname: path.dirname(filename) }; } export { getPathInfoFromFileUrl, getRequire, getResolver };