Я использую next.js и @ aws-усиление. Однако при работе на ie11 произошла ошибка.
Сначала @ aws-ampify использовал Object.assign, который не поддерживается ie11.
Error was not caught TypeError: Object doesn't support property or method 'assign'
Итак, загрузите node_modules / @ aws-amplify in babel.
const excludeModules = [
'@aws-amplify',
];
const reModules = excludeModules.map((module) => (
new RegExp(`/node_modules/${module}`)
));
module.exports = {
crossOrigin: 'anonymous',
webpack: (config) => {
config.module.rules.forEach((rule) => {
rule.include.push([
path.join(__dirname, 'src'),
...excludeModules.map((module) => path.join(__dirname, `node_modules/${module}`)),
]);
rule.exclude = path => {
if (/next-server[\\/]dist[\\/]lib/.test(path)
|| /next[\\/]dist[\\/]client/.test(path)
|| /next[\\/]dist[\\/]pages/.test(path)
|| /[\\/](strip-ansi|ansi-regex)[\\/]/.test(path)
) {
return false;
}
if (reModules.some(re => re.test(path))) {
return false;
}
return /node_modules/.test(path);
};
});
return config;
},
};
Проблема с Object.assign решена. Но затем я получил ошибку с graphql.
IE - graphql - SCRIPT5022: Cannot use undefined “Boolean” from another module or realm
graphql также был нацелен на babel, но это не было исправлено.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Function/name
Use "transform-runtime ", я хочу, чтобы он работал Function.name с ie11. Не хотите обновлять глобальное имя функции.
Как исправить в этом случае настройку babel next.js?