我对通天塔翻译有疑问。在这里打一堵墙,想知道是否有人可以给我提示。 我迁移了一个可运行的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 /核心7.8.7,@ babel / preset-env 7.8.7。