首页 > 解决方案 > 为 ES 模块做 require.resolve

问题描述

我需要解析通过静态导入或类似函数的动态导入导入的ES 模块,其方式类似于node.js使用require.resolve()解析 CJS 模块的方式。ES 模块是否存在类似的东西?

例如,如果一个 Vue 包同时具有vue.runtime.common.jsvue.runtime.esm.js. 我需要找到路径vue.runtime.esm.js。如果包裹没有,我想知道。

标签: javascriptes6-modules

解决方案


只要import.meta.resolve保持实验性,您就可以createRequire用来取回require.resolveES 模块中的功能,例如

import { createRequire } from 'module';

const require = createRequire(import.meta.url);
const pathName = require.resolve('vue.runtime.esm.js');

推荐阅读