首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rollup + React不编译JSX

Rollup + React不编译JSX
EN

Stack Overflow用户
提问于 2018-10-19 00:21:24
回答 2查看 14.2K关注 0票数 21

我正在尝试使用Rollup + React,但当汇总遇到JSX时,我会添加一个错误。

代码语言:javascript
复制
Unexpected token... export default () => <p>M...

我有一个触发错误的存储库。我发现的所有使用Rollup + React的文档/示例都不使用最新的Babel,因此它可能与Babel有关。

rollup.config.js:

代码语言:javascript
复制
import resolve from 'rollup-plugin-node-resolve';
import commonjs from 'rollup-plugin-commonjs';
import babel from 'rollup-plugin-babel';
import pkg from './package.json';

export default [{
        input: 'src/index.js',
        output: {
        name: 'index',
        file: pkg.main,
        format: 'umd'
    },
    plugins: [
        resolve(),
        commonjs(),
        babel({ 
            exclude: 'node_modules/**',
            presets: ['@babel/env', '@babel/preset-react']
        })
    ],
    external: [
        'react',
        'prop-types',
    ],
    globals: {
        react: "React"
    }
},
];

.babelrc:

代码语言:javascript
复制
{
  "presets": [
  ["@babel/env", { "modules": false }], "@babel/preset-react"]
}
EN

回答 2

Stack Overflow用户

发布于 2018-10-19 02:58:39

解决这个问题的方法是用两个插件的顺序交换

发自:

代码语言:javascript
复制
plugins: [
    resolve(),
    commonjs(),
    babel({ 
        exclude: 'node_modules/**',
        presets: ['@babel/env', '@babel/preset-react']
    })
],

至:

代码语言:javascript
复制
plugins: [
    resolve(),
    babel({ 
        exclude: 'node_modules/**',
        presets: ['@babel/env', '@babel/preset-react']
    }),
    commonjs()
],

谢谢vladshcherbin

票数 21
EN

Stack Overflow用户

发布于 2022-03-06 15:19:17

对于任何遇到这一问题的人,建议根据文档在babel之前放置公共内容。这个问题可以通过添加下面的commonjs({ include: /node_modules/ })来解决。

这很好地解释了为什么https://github.com/rollup/plugins/issues/805#issuecomment-779902868

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52884278

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档