gpt4 book ai didi

javascript - Webpack Uglify 插件导致 String.split 仅在 chrome 51 中出现故障

转载 作者:行者123 更新时间:2023-11-28 04:39:16 25 4
gpt4 key购买 nike

screenshot of issue

我看到一个 super 奇怪的问题,我的应用程序的缩小过程导致了意想不到的副作用。

我唯一的 webpack 插件就是这两个。

  new webpack.DefinePlugin({
'process.env': {
NODE_ENV: '"production"'
},
}),
new webpack.optimize.UglifyJsPlugin()

在最新版本的 chrome 中,如果我运行这段 js 'fooBar'.split(/(?=[A-Z])/) 结果是 ["foo", "Bar"],这是预期的。在其他页面的 chrome 51 中也能正常工作。

但是,在我的页面上,在 chrome 51 中,结果是 ["fooBar"]

如果我删除 uglifyjs 插件,它会再次开始工作。

我想这可能是我使用的工具特有的,而不一定是我的构建,但我拉下了 create-react-app 并且它也使用了 uglifyjs,但它在 chrome 51 中工作得很好。

我还尝试直接使用 uglify js 进行缩小,而不是使用插件,效果很好。我一直在查看 uglify 插件的代码,看看是否有什么问题突出,但没有任何问题。

我还在控制台中检查了该方法是否已被替换,但是当我说 str.split 时,它仍然返回 function split() { [native code] }

我一直在搜索我正在使用的库和我的代码,看看是否有任何东西看起来可以改变像这样的 native 方法的行为,但我真的没有看到任何东西。我尝试删除 babel-polyfill 和其他一些东西来看看它们是否导致了问题,但似乎没有什么区别。考虑到 split 方法仍然是 native 的,我仍然感到震惊的是,浏览器中发生的任何事情都可能对其行为产生影响。

有人知道可能会导致这种情况的原因吗?谢谢。

最佳答案

这似乎是由reduce_vars选项引起的一个bug uglify。

https://github.com/facebookincubator/create-react-app/issues/2199#issuecomment-302226607

关于javascript - Webpack Uglify 插件导致 String.split 仅在 chrome 51 中出现故障,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43927766/

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