Ошибка разбора модуля: ключевое слово 'super' вне метода - PullRequest
0 голосов
/ 11 марта 2020

У меня проблема с трансплантацией вавилона. Ударите о стену и подумайте, может кто-нибудь подсказать мне. Я перенес работающий проект monorepo на использование root на основе babel.config. js

root
  babel.config.js
  packages
     server
         razzle.config.js => babel-loader customization
     common-lib

module.exports = api => {
    api.cache(true);
    console.log('babel root config loading');
    return {
        babelrcRoots: ['.', 'packages/*'],
        sourceType: 'unambiguous',
        presets: [
            [
                '@babel/preset-env',
                {
                    modules: false,
                    targets: { node: 'current', browsers: '> 0.25%, not dead' },
                },
            ],
            'babel-preset-expo',
            '@lingui/babel-preset-react',
        ],
        plugins: [
            'macros',
            [
                'module-resolver',
                {
                    extensions: [
                        '.web.js',
                        '.native.js',
                        '.ios.js',
                        '.android.js',
                        '.js',
                        '.json',
                    ],
                    alias: {
                        root: path.resolve(__dirname, ''),
                        assets: path.resolve(__dirname, 'assets'),
                        common-lib: path.resolve(__dirname, 'packages/common-lib'),
                        server: path.resolve(__dirname, 'packages/server/src/server'),
                    },
                },
            ],
        ],
        env: {
            development: {
                plugins: ['dynamic-import-node'],
            },
        },
    };
};

Я использую webpack babel-loader для компиляции на стороне сервера.

test: /\.m?js$/,
    use: {
        loader: 'babel-loader',
        include: [
            resolveDir('../../node_modules'),
            resolveDir('../common-lib/node_modules'),
            resolveDir('./src'),
            resolveDir('../common-lib/src'),
        ],
        options: {
            presets: ['@babel/preset-env'],
            rootMode: 'upward',
            presets: [
                [
                    '@babel/preset-env',
                    {
                        modules: false,
                        targets: {
                            browsers: target === 'web' ? '> 0.25%, not dead' : undefined,
                            node: target !== 'web' ? 'current' : undefined,
                        },
                    },
                ]
            ]
        }
    }
}

Мой сервер - es6, и я расширяю некоторые классы, особенно с помощью sequelize. В настоящее время это приводит к этой ошибке:

Module parse failed: 'super' keyword outside a method (1:5725)
File was processed with these loaders:
 * ../../node_modules/cache-loader/dist/cjs.js
 * ../../node_modules/shebang-loader/index.js
 * ../../node_modules/babel-loader/lib/index.js
 * [...]
 * at Object.../../node_modules/sequelize/lib/dialects/mysql/query-generator.js

You may need an additional loader to handle the result of these loaders.

Использование узла 12.16, @ babel / core 7.8.7, @ babel / preset-env 7.8.7.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...