首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为ES模块执行require.resolve

为ES模块执行require.resolve
EN

Stack Overflow用户
提问于 2019-03-04 14:33:48
回答 2查看 2.4K关注 0票数 15

我需要以类似于使用require.resolve()解析node.js中的CJS模块的方式来解析通过static import or function-like dynamic import导入的ES模块。ES模块也有类似的东西吗?

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

EN

回答 2

Stack Overflow用户

发布于 2020-06-21 21:52:50

只要import.meta.resolve仍处于实验阶段,您就可以使用createRequire重新获得ES模块中的require.resolve功能,例如

代码语言:javascript
复制
import { createRequire } from 'module';

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

Stack Overflow用户

发布于 2020-06-09 07:10:24

您可以使用import.meta.resolve()

下面是来自node docs的一个示例

代码语言:javascript
复制
(async () => {
  const dependencyAsset = await import.meta.resolve('component-lib/asset.js');
})();

请注意,从节点14.3.0开始,您需要传入--experimental-import-meta-resolve才能正常工作

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54977743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档