UNPKG

@serpent/common-cli

Version:

通用的 cli 相关的函数

37 lines (33 loc) 1.05 kB
'use strict'; var Module = require('module'); var url = require('url'); var path = require('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 = url.fileURLToPath(currentFileUrl); return { filename: filename, dirname: path.dirname(filename) }; } exports.getPathInfoFromFileUrl = getPathInfoFromFileUrl; exports.getRequire = getRequire; exports.getResolver = getResolver;