You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过react-app-rewired配置多entry入口支持monaco相关worker?

问题原因

你直接全量覆盖config.entry的写法会丢失CRA内置的默认入口配置(包括开发环境的热更新注入逻辑、入口文件的内部路径解析规则等),因此会导致index.js加载异常。

正确实现方式

你只需要将CRA原有入口配置保留为main入口的值,再追加你需要的worker入口即可,同时需要配套修改多入口场景下的输出文件名规则,避免打包时文件名冲突:

// config-overrides.js
module.exports = function override (config) {
    // 保留CRA原生入口配置,追加worker入口
    config.entry = {
        main: config.entry,
        'editor.worker': 'monaco-editor/esm/vs/editor/editor.worker.js',
        'yaml.worker': 'monaco-yaml/lib/esm/yaml.worker.js',
    }

    // 适配多入口的输出规则
    config.output.filename = 'static/js/[name].[contenthash:8].js'
    config.output.chunkFilename = 'static/js/[name].[contenthash:8].chunk.js'

    return config
}

补充说明

如果后续打包后worker加载404,你可以根据自己的部署路径调整output.publicPath配置,或者配合monaco的运行时配置指定worker的加载路径。

内容的提问来源于stack exchange,提问作者Mir-Ismaili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 00:18:04