我正在使用next.js和@ aws-amplify。 但是,在ie11上运行时发生错误。
首先,@ aws-amplify使用了ie11不支持的Object.assign。
Error was not caught TypeError: Object doesn't support property or method 'assign'
因此,在babel中加载node_modules / @ aws-amplify。
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
使用“ transform-runtime”,我想使它与ie11一起使用Function.name。不想更新全局Function.name。
在这种情况下,如何解决next.js babel设置?