描述bug
react-app-polyfill
没有实现 String.prototype.replaceAll
的多态。
环境
Environment Info:
current version of create-react-app: 5.0.1
running from C:\Users\listl\scoop\persist\nodejs\cache\_npx\c67e74de0542c87c\node_modules\create-react-app
System:
OS: Windows 10 10.0.19044
CPU: (16) x64 AMD Ryzen 7 PRO 4750U with Radeon Graphics
Binaries:
Node: 18.8.0 - ~\scoop\apps\nodejs\current\node.EXE
Yarn: Not Found
npm: 8.18.0 - ~\scoop\apps\nodejs\current\npm.CMD
Browsers:
Chrome: 81.0.4044.92
Edge: Spartan (44.19041.1266.0), Chromium (104.0.1293.70)
Internet Explorer: 11.0.19041.1566
npmPackages:
react: ^18.2.0 => 18.2.0
react-dom: ^18.2.0 => 18.2.0
react-scripts: 5.0.1 => 5.0.1
npmGlobalPackages:
create-react-app: Not Found
重现步骤
- 运行
npx create-react-app test --template typescript
- 在
src/index.tsx
的第一行添加import "react-app-polyfill/stable";
- 在
package.json
的browserlists.production
中添加"chorme > 80"
- 将 App.tsx 文件更改为以下内容:
function App() {
return <>{"app".replaceAll("a", "A")}</>;
}
export default App;
- 运行
npm start
预期行为
它显示 "App"。从 Edge 104 截图
实际行为
"app".replaceAll
不是一个函数。从 Chrome 81 截图,Chrome 从 85 开始支持 String.prototype.replaceAll
3条答案
按热度按时间rmbxnbpk1#
同样的错误在我的生产构建中发生了,请修复!
iklwldmw2#
是否有任何修复方法?
iyr7buue3#
Create React App已被弃用,将不再进行更新。请迁移到vite并使用String.prototype.replace与RegEx一起使用
g
标志: