繁体   English   中英

在 JavaScript 中转译 forEach、map、filter 和 for 基于长度的 for 循环

[英]Transpile forEach, map, filter and for of to length based for loop in JavaScript

我有一个 WebGL 项目,其中每个微优化都很重要。 为了可读性,我使用 .forEach、.map、.filter 和 for 循环,但由于性能原因,我想在我的生产代码中将它们转换为基于 for 循环的简单(反向)长度。 您能否建议如何使用 Webpack 实现这一目标? 我对这个主题的最佳实践很好奇。

事实证明,有两个 Babel 插件可以很好地完成这项工作。

在我的配置中,我使用 Webpack 和ts-loader来转译 TypeScript。 为了在保留 ts-loader 的同时使用这些 Babel 插件,我将两个加载器链接起来,因此 Babel 插件将优化 ts-loader 中的 js 代码。

webpack.config.js:

{
    test: /\.tsx?$/,
    use: [
        { // babel-loader runs second and receives output of ts-loader
            loader: 'babel-loader'
        },
        { // ts-loader runs first
            loader: 'ts-loader',
            options: {
                // ts-loader options
            },
        },
    ],
},

.babelrc:

{
  "presets": [],
  "plugins": [
    "@babel/plugin-transform-for-of",
    "babel-plugin-loop-optimizer"
  ]
}

不幸的是,第二个插件没有维护,它们都不能转换为基于反向索引的循环。 人们可以发布一个插件,在一个地方解决所有这些问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM