0

我正在为我的 React 项目的构建管道使用带有 ESbuild-loader 的 Webpack5。为了将我的组件连接到 Redux 商店,我使用@connect装饰器而不是使用 HOC 方法。

例子:MyComponent.jsx

@connect((state) => ({
    notes: state.notes,
}))
class MyComponent extends PureComponent {
    static propTypes = {
        notes: PropTypes.arrayOf(PropTypes.object),
    };
...
}

这是我的js/jsx文件的 Webpack 配置规则:


module: {
    rules: [
        {
            test: /\.(js|jsx)$/,
            exclude: /(node_modules)/,
            loader: 'esbuild-loader',
            options: {
                loader: 'jsx',
                target: 'es2015',
            },
        },

当我尝试启动我的开发服务器时,我得到这个与 line 装饰器相关的错误被定义:

ERROR in ./project/MyComponent.jsx
Module build failed (from ./node_modules/esbuild-loader/dist/index.js):
Error: Transform failed with 1 error:
MyComponent.js:63:0: ERROR: Unexpected "@"

ESbuild 不懂装饰器吗?

4

1 回答 1

0

根据图书馆维护者的说法,这还不可能。

esbuild 或 esbuild-loader 都没有被宣传为支持装饰器。

在此处关注有关未来支持的讨论。

于 2022-01-21T13:47:53.937 回答