RollupError:模块格式“umd”不支持顶级等待。而是使用“es”或“system”输出格式

问题描述 投票:0回答:1

RollupError:模块格式“umd”不支持顶级等待。而是使用“es”或“system”输出格式。

我不知道该怎么办。我正在尝试构建我的 Vite 项目,但收到此错误。有办法吗?

错误是由我的这个文件引起的:

// Licensed to the .NET Foundation under one or more agreements.
// The .NET Foundation licenses this file to you under the MIT license.

//import { dotnet2 } from './_framework_ide_helper/dotnet.js'
import { dotnet as dotnet1 } from './_framework/dotnet.js'
import { dotnet as dotnet2 } from './_framework/dotnet.js'



const dotnetEnv2 = await dotnet2
    .withDiagnosticTracing(false)
    .withApplicationArgumentsFromQuery()
    .create();

const setModuleImports_ideHelper = dotnetEnv2.setModuleImports;
const getAssemblyExports_ideHelper = dotnetEnv2.getAssemblyExports;
const getConfig_ideHelper = dotnetEnv2.getConfig;

setModuleImports_ideHelper('ide-helper.js', {
    //window: {
    //    location: {
    //        href: () => globalThis.window.location.href
    //    }
    //}
});


var str = `&a = 5;
&b = 8;
if (&a > &b)
{
    &c = &a;
}
else if (&a == &b)
{
    &c = &a;
}
else
    &c = &b;`;

const config = getConfig_ideHelper();
export const exportsHelper = await getAssemblyExports_ideHelper(config.mainAssemblyName);


这是我的

vite.config.ts
文件:

import { defineConfig } from 'vite';
import react from '@vitejs/plugin-react';
import tsconfigPaths from "vite-tsconfig-paths";
import { resolve } from "path"
import dts from "vite-plugin-dts"


export default defineConfig({

    plugins: [react(), tsconfigPaths(), dts({ rollupTypes: true })],

    build: {
        minify: false,
        lib: {
            entry: resolve(__dirname, "src/main.ts"),
            name: "ide",
            fileName: "ide"
        },
        rollupOptions: {
            external: [
                "react",
                "react-dom",
                "react/jsx-runtime",
            ],
            output: {
                globals: {
                    react: "React",
                    "react-dom": "ReactDOM",
                    "react/jsx-runtime": "react/jsx-runtime",
                },
                dir: 'dist',
                format: 'es',
                entryFileNames: "[name].js"
            },
        },
        target: "esnext",

    },
    esbuild: {
        target: "es2022"
    },
    optimizeDeps: {
        esbuildOptions: {
            target: "es2022",
        }
    },
    resolve: {
        alias: {
            '@src': resolve(__dirname, 'src'),
        },
    },
});

我尝试删除await关键字并与promise一起使用,但这是不可能的。我不知道该怎么办。任何帮助表示赞赏。谢谢。

javascript vite rollup
1个回答
0
投票

defineConfig
可以接受返回配置对象的函数。这个函数可以是
async
(即返回一个promise)

因此你可以

defineConfig(async ()=>{
    // await something exported from another file
    return { /* some config */}
})
© www.soinside.com 2019 - 2024. All rights reserved.