代码之家  ›  专栏  ›  技术社区  ›  mpen

如何从vm中获取默认导出。SourceTextModule?

  •  0
  • mpen  · 技术社区  · 4 年前

    尝试新事物 SourceTextModule API,我正试图提取我的出口。

    以下是我得到的:

    
    async function loader() {
        // ...
    
        const context = vm.createContext({
            require: filename => {
                return filename;
            },
            module: {
                exports: {},
            }
        });
        const mod = new vm.SourceTextModule(source, {
            context,
            identifier: module.identifier(),
        });
    
        async function linker(specifier, referencingModule) {
            throw new Error(`Unable to resolve dependency: ${specifier}`);
        }
    
        await mod.link(linker);
    
        const result = await mod.evaluate();
    
        console.log("RESULT", result);
    }
    

    哪里 source 是:

    var manifest = {
      name: "MyApp",
      // ...
    };
    export default manifest;
    

    这是印刷

    RESULT [Object: null prototype] { result: undefined }
    

    我怎么才能拿到那个 export default ? i、 我想要 manifest 对象

    0 回复  |  直到 4 年前
        1
  •  1
  •   akvadrako    3 年前

    你可以用 mod.namespace ....