【问题标题】:Why Ionic 2 builds are so large, even for small / blank apps?为什么 Ionic 2 构建如此之大,即使对于小型/空白应用程序也是如此?
【发布时间】:2017-01-10 00:01:42
【问题描述】:

所以我是 Ionic 的新手,可能会遗漏一些东西。但我像这样开始了一个新的空白应用程序:

ionic start BlankApp --v2 blank

然后添加浏览器平台:

cordova platform add browser

然后为生产而构建:

ionic build browser

输出如下:

> ionic-hello-world@ ionic:build C:\Work\ionic\BlankApp
> ionic-app-scripts build

keywords if/then/else require v5 option
[17:56:25]  ionic-app-scripts 0.0.47
[17:56:25]  build dev started ...
[17:56:25]  clean started ...
[17:56:25]  clean finished in 3 ms
[17:56:25]  copy started ...
[17:56:25]  transpile started ...
[17:56:28]  transpile finished in 3.47 s
[17:56:28]  webpack started ...
[17:56:28]  copy finished in 3.65 s
[17:56:34]  webpack finished in 5.65 s
[17:56:34]  sass started ...
[17:56:35]  sass finished in 1.45 s
[17:56:35]  build dev finished in 10.73 s

You have been opted out of telemetry. To change this, run: cordova telemetry on.

Error loading cordova-browser


Running command: cmd "/s /c "C:\Work\ionic\BlankApp\platforms\browser\cordova\build.bat""


Cleaning Browser project

鉴于此应用程序中没有任何内容,我期待一个小的 js 包。 Tree-shaking 应该已经删除了很多代码,并且我认为应用程序应该是快速的。

不幸的是,事实并非如此。

platforms/browser/www/build/js 目录有一个大小超过 4MB 的 main.js 文件。还有一个 main.css 文件,内容为 500Kb。

我错过了什么?我找错地方了吗?

**更新:** 我的问题是我正在尝试构建一个渐进式网络应用程序。如果我只想构建一个移动应用程序,那很好。但是对于一个网络应用来说,在计算它自己的内容之前就下载 4MB 的东西太疯狂了,我不敢相信这是 RC4 版本的联盟状态。

谢谢,

爱德华多

【问题讨论】:

  • 如果你正在制作一个 web 应用程序,你应该只用纯 HTMJ+JS+CSS 编写代码,而不是使用 ionic。它会为您节省大量空间,并且可能会带来很多麻烦。我认为 Ionic 或 Cordova 根本不是为此而生的。
  • 我希望拥有一个代码库,并且能够将该 Web 应用程序包装为原生应用程序。 Ionic 支持 Progressive Web Apps 作为其旗舰功能之一,因此是我的问题。一定有什么不对劲……

标签: javascript cordova browser build ionic2


【解决方案1】:

使用 ionic 构建浏览器 --prod

【讨论】:

  • 我不确定 Ionic 2,因为我只使用过 Ionic 1,但我记得默认构建操作包含大量用于调试的代码。在过去,使用 --prod 标志大大减少了我的 Ionic 1 应用程序的文件大小;-)
  • Ionic 开发者推荐npm run build --prod,但结果可能相同。
  • @DmitriR117 这个结果在 2017 年 9 月仍然超过 500kb。 vendor.js 是 800+ kb
  • 我正在使用基本的ionic start myapp tabs --type=ionic-angular 演示测试 ionic 4.1.1。 ionic build --prodionic build browser --prodnpm run build --prod 都导致 www 文件夹的 3.4mb
【解决方案2】:

当您仔细考虑时,您的构建很大是很合乎逻辑的。这是因为,在构建内部,有 Cordova 及其所有依赖项和插件。但是当您看到 main.jsmain.css 相当大时,这是因为 Cordova 试图将每个库、插件等...放在同一个文件中。

但是,您能否上传这两个文件,看看我是否正确。 :)

【讨论】:

  • 问题是,对于开发构建来说,这很好。我无法想象这对于一个没有任何内容的应用程序的生产版本来说是如何的。考虑到我没有使用它们,难道不应该丢弃所有的cordova和所有插件吗?甚至还生成了源映射,还有很多 cmets。 main.js 甚至没有被缩小。我不明白发生了什么,但这不是一个奇怪的产品构建,因为 Ionic 2 在 RC4 中......
猜你喜欢
  • 2019-10-05
  • 2011-06-01
  • 2022-08-14
  • 2010-11-02
  • 1970-01-01
  • 2022-09-26
  • 2011-03-08
  • 1970-01-01
  • 2018-05-10
相关资源
最近更新 更多