问题描述
我需要解析通过ES 模块,其方式类似于使用解析node.js
CJS 模块的方式。
ES模块是否存在类似的东西?
例如,如果一个 Vue 包同时具有vue.runtime.common.js
和vue.runtime.esm.js
。
我需要获取vue.runtime.esm.js
路径。
如果包裹没有,我想知道。
1楼
只要import.meta.resolve
保持实验性,您就可以使用来取回 ES 模块中的require.resolve
功能,例如
import { createRequire } from 'module';
const require = createRequire(import.meta.url);
const pathName = require.resolve('vue.runtime.esm.js');
2楼
你可以使用import.meta.resolve()
这是一个示例
(async () => {
const dependencyAsset = await import.meta.resolve('component-lib/asset.js');
})();
请注意,从节点14.3.0
,您需要传入--experimental-import-meta-resolve
才能使其工作