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

React项目中rollup-plugin-external-globals报Unexpected token错误求助

解决rollup-plugin-external-globals处理CSS文件的Unexpected token错误

错误原因

rollup-plugin-external-globals仅用于替换JS模块中的外部依赖为全局变量,但它会尝试解析所有被rollup处理的模块文件。CSS不属于JS语法,插件解析时必然抛出语法错误,哪怕CSS内容为空也无法避免。

解决方案

核心思路是让CSS文件先被专门的rollup CSS处理插件处理,且该插件需放在externalGlobals之前执行,避免CSS进入externalGlobals的解析流程。

步骤1:安装CSS处理插件

选择一个rollup兼容的CSS插件,按需选择:

# 功能全面的postcss插件(支持预处理、压缩等)
npm install rollup-plugin-postcss --save-dev

# 仅提取CSS的轻量插件
npm install rollup-plugin-css-only --save-dev

步骤2:修改rollup配置文件

将CSS处理插件放在externalGlobals插件之前配置:

示例1:使用rollup-plugin-postcss

import externalGlobals from 'rollup-plugin-external-globals';
import postcss from 'rollup-plugin-postcss';

export default {
  input: 'src/lib/index.js',
  output: [
    { file: 'dist/index.es.js', format: 'es' },
    { file: 'dist/index.js', format: 'umd', name: 'YourLibraryName' }
  ],
  plugins: [
    // 优先处理CSS文件
    postcss({
      extract: true, // 将CSS提取为单独文件(推荐)
      minimize: true, // 可选:开启CSS压缩
      sourceMap: true // 可选:生成CSS sourcemap
    }),
    // 再处理JS模块的外部全局变量替换
    externalGlobals({
      react: 'React',
      'react-dom': 'ReactDOM',
    }),
    // 其他插件(如babel等)按需添加
  ]
};

示例2:使用rollup-plugin-css-only

import externalGlobals from 'rollup-plugin-external-globals';
import css from 'rollup-plugin-css-only';

export default {
  input: 'src/lib/index.js',
  output: [
    { file: 'dist/index.es.js', format: 'es' },
    { file: 'dist/index.js', format: 'umd', name: 'YourLibraryName' }
  ],
  plugins: [
    // 提取CSS到指定文件
    css({ output: 'dist/index.css' }),
    // 处理JS外部全局变量
    externalGlobals({
      react: 'React',
      'react-dom': 'ReactDOM',
    }),
    // 其他插件
  ]
};

步骤3:验证配置

确保入口JS文件中正确导入CSS:

// src/lib/index.js
import './index.css';
// 其余业务代码...

重新执行rollup命令:

rollup --config rollup.config.mjs -w

此时CSS文件会被专门插件处理,不会进入externalGlobals的解析流程,语法错误即可解决。

内容的提问来源于stack exchange,提问作者Ahmet Emre Kilinc

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 21:17:27