gpt4 book ai didi

reactjs - 为 IE 10/11 转译 NextJS; 'Weakset undefined'

转载 作者:行者123 更新时间:2023-12-03 13:41:35 28 4
gpt4 key购买 nike

我正在构建一个 NextJS 网站,它很棒,但它无法在 IE 10/11 中运行,因为某些代码未正确转译。我对 babel 和 webpack 很不熟悉,以前从来没有自己配置过它们。我已经尝试通过在线阅读解决问题两天了,但似乎没有任何效果。

我得到的确切错误是weakSet is not defined ,它来自 common.js 文件。

这是我的 .babelrc 文件,位于项目的根目录中。

//.babelrc

{
"presets": ["next/babel"],
"plugins": [
["styled-components", {
"ssr": true,
"displayName": true,
"preprocess": false
}]
]
}

我的package.json

{
"name": "bradshouse",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "next",
"build": "next build",
"start": "next start"
},
"keywords": [],
"author": "",
"license": "ISC",
"dependencies": {
"next": "^7.0.2",
"react": "^16.6.0",
"react-dom": "^16.6.0",
"react-pose": "^4.0.1",
"styled-components": "^4.0.2"
},
"devDependencies": {
"babel-plugin-styled-components": "^1.8.0"
}
}

如果您有兴趣自己启动它,可以在这里查看完整的存储库。节点模块被排除,因此 npm install,然后 npm run build,然后 npm run start。
https://github.com/TJBlackman/Brads-House

感谢您的帮助!请随意链接文章,我会仔细阅读它们!谢谢。

编辑:作为快速修复,我将此 polyfill 脚本添加到 <head>我所有的页面,它仍然没有解决这个问题......瓦?! <script src="https://cdn.polyfill.io/v2/polyfill.min.js"></script>

最佳答案

如何通过在 NextJS 中转译 node_modules 代码来支持 IE 11

在 ziet/nextjs 问题线程 ( view here ) 中找到的原始答案。大声喊出joaovieira <3

npm install --save-dev babel-polyfill

在您想要的位置创建一个 polyfill.js,然后在该文件中导入 babel-polyfill,如下所示:

导入'babel-polyfill';

接下来,如果您没有 next.config.js 文件,请在根目录中创建它。现在更新此文件以包含以下 webpack 配置。请注意它是如何使用您刚刚创建的 polyfill 文件的。完整文件示例:

module.exports = {
webpack: (config) => {
// Unshift polyfills in main entrypoint.
const originalEntry = config.entry;
config.entry = async () => {
const entries = await originalEntry();
if (entries['main.js']) {
entries['main.js'].unshift('./path_to/polyfills.js'); // <- polyfill here
}
return entries;
};

return config;
}
}

最后,如果您的项目根目录中没有 .babelrc 文件,请创建一个。在其中,使用下面与您正在使用的 babel 版本相匹配的代码。

巴别塔 7

{
"presets": [
[
"next/babel",
{
"preset-env": {
"useBuiltIns": "usage"
}
}
]
]
}

通天塔6

{
"presets": [
[
"next/babel",
{
"preset-env": {
"targets": {
"browsers": "defaults"
},
"useBuiltIns": true
}
}
]
]
}

我只知道这些。我什至没有考虑 IE 10...

祝你好运!!

关于reactjs - 为 IE 10/11 转译 NextJS; 'Weakset undefined',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53304140/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com