@serpent/common-cli
Version:
通用的 cli 相关的函数
33 lines (30 loc) • 970 B
JavaScript
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 };