首页 > web前端 > js教程 > 正文

开发工具不是必需的

PHPz
发布: 2024-09-07 06:31:02
原创
762 人浏览过

Devtool is not necessary

几个月前我正在开发一个前端项目。该项目是一个微前端,旨在集成到遗留仪表板上。

采用微前端方法的原因是为了降低仪表板上的复杂性。我对这个挑战感到很兴奋,并全身心投入其中。

我使用 webpack、react 和 typescript 设置微前端。我使用 chakra ui 作为 CSS-IN-JS 框架,使用 axios 进行 API 集成,一切正常。然而,该项目的构建大小约为 14mb。对于微前端来说,这个数字大得离谱。这导致集成它的仪表板中的页面响应非常慢。因此,我面临着优化构建的新挑战。

我认为构建是如此之大,因为我使用了 CSS-IN-JS 框架来进行样式设置。所以我将整个代码库从 chakra-ui 重构为 sass。你猜怎么着,构建大小从 14mb 增加到大约 21mb ??。

那时我才知道问题不是关于 css 库或代码,而是关于 webpack 配置。我开始对 webpack 配置进行大量试验和错误。然后我发现,当我删除 devtool 时,构建大小从 14mb 变为大约 600kb。然后我查了关于devtool的webpack文档。我意识到这不是强制性的。更多信息在这里:.

这是我的 webpack 配置的预览

module.exports = merge(common, {
  name: "client",
  mode: process.env.NODE_ENV,
  devtool: "eval-source-map", //remove devtool
  entry: {
    "microfrontend": "./src/bootstrap.tsx",
  },
  output: {
    path: path.resolve(__dirname, "../dist"),
    filename: "[name]_[hash].js",
    pathinfo: false,
    publicPath: 'http://localhost:6001/',
  },
  ...
}
登录后复制

综上所述,我遇到的问题的解决方案只需删除一行代码即可解决。

module.exports = merge(common, {
  name: "client",
  mode: process.env.NODE_ENV,
  entry: {
    "microfrontend": "./src/bootstrap.tsx",
  },
  output: {
    path: path.resolve(__dirname, "../dist"),
    filename: "[name]_[hash].js",
    pathinfo: false,
    publicPath: 'http://localhost:6001/',
  },
  ...
}
登录后复制

感谢您的阅读。我希望您觉得这有帮助。

以上是开发工具不是必需的的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!