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

Nx.dev环境下Gatsby使用gatsby-plugin-translate-urls报JSX语法不支持错误

错误根源

该报错的核心原因是gatsby-plugin-translate-urls插件包自带的wrap-page-element.js文件使用了JSX语法,但Gatsby默认的Webpack配置不会对node_modules目录下的文件做JSX转译,因此打包时无法识别该实验性语法。

解决方案

你可以任选以下方案处理:

  • 方案1:调整Gatsby Webpack配置,将该插件加入转译范围
    打开对应Gatsby应用目录下的gatsby-node.js,添加如下代码即可:
    exports.onCreateWebpackConfig = ({ actions, getConfig }) => {
      const config = getConfig()
      // 修改JSX转译规则,排除node_modules时放过gatsby-plugin-translate-urls
      config.module.rules.forEach(rule => {
        if (rule.test.toString().match(/js|jsx/)) {
          rule.exclude = /node_modules\/(?!(gatsby-plugin-translate-urls)\/).*/
        }
      })
      actions.replaceWebpackConfig(config)
    }
    
    注:Nx管理的项目需确保该配置写在对应Gatsby应用的专属配置文件中,而非workspace根配置。
  • 方案2:补充Babel React转译预设
    先安装依赖:
    npm install @babel/preset-react --save-dev
    再修改你的.babelrc配置,新增React预设:
    {
        "presets": [
            "@babel/preset-react",
            [
                "babel-preset-gatsby",
                {
                    "targets": {
                        "browsers": [">0.25%", "not dead"]
                    }
                }
            ]
        ],
        "plugins": []
    }
    
  • 方案3:若前两个方案均不生效,可自行fork该插件仓库,将源码编译为不含JSX语法的版本后替换项目依赖,也可替换为功能相似的其他多语言URL处理插件。

内容的提问来源于stack exchange,提问作者d3tr1tus

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 17:39:02