У меня проблема с трансплантацией вавилона. Ударите о стену и подумайте, может кто-нибудь подсказать мне. Я перенес работающий проект 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.