千家信息网

ES6语法和webpack压缩实例分析

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本文小编为大家详细介绍"ES6语法和webpack压缩实例分析",内容详细,步骤清晰,细节处理妥当,希望这篇"ES6语法和webpack压缩实例分析"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入
千家信息网最后更新 2025年02月23日ES6语法和webpack压缩实例分析

本文小编为大家详细介绍"ES6语法和webpack压缩实例分析",内容详细,步骤清晰,细节处理妥当,希望这篇"ES6语法和webpack压缩实例分析"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

首先介绍下在本文出现的几个比较重要的概念:

函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。函数计算更多信息 参考。
Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API 网关、日志服务等资源。它通过一个资源配置文件(template.yml),协助您进行开发、构建、部署操作。Fun 的更多文档 参考。
2.0 版本的 Fun,在部署这一块做了很多努力,并提供了比较完善的功能,能够做到将云资源方便、平滑地部署到云端。但该版本,在本地开发上的体验,还有较多的工作要做。于是,我们决定推出 Fun Init 弥补这一处短板。
Fun Init: Fun Init 作为 Fun 的一个子命令存在,只要 Fun 的版本大于等于 2.7.0,即可以直接通过 fun init 命令使用。Fun Init 工具可以根据指定的模板快速的创建函数计算应用,快速体验和开发函数计算相关业务。官方会提供常用的模板,用户也可以自定自己的模板。

背景

当我们写 nodejs 函数时,函数往往会依赖很多第三方依赖,这样导致函数代码少则几十兆,多则上百兆。代码包太大,会有如下问题:

  1. 可能会导致没法成功上传代码到函数计算服务,因为函数计算服务对代码包大小是有限制的,压缩后最大不能超过 50 MB,解压后最大不能超过 250 MB

  2. 会导致冷启动时间是变大,因为下载代码的过程变大了

  3. 每次更新代码时间变大

另外,函数计算目前只支持 nodejs8 和 nodejs6 这两个版本,这两版本不支持 es6 语法,但是我们可能已经写习惯了 es6 语法该怎么办呢?

熟悉 nodejs 的同学应该知道,项目工程化管理工具 webpack,我们完全可以通过 webpack 将 es6 代码编译成 es5,并且剪切打包压缩成一个 js 文件,然后将该 js 文件上传到函数计算中运行。

快速开始

我这里提供了一个 fun 模板,帮助快速搭建一个函数计算 nodejs 项目骨架,支持 es6 代码编译成 es5,并且剪切打包压缩成一个 js 文件,然后将该 js 文件上传到函数计算中运行。操作作步骤如下:

1. 安装 node
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.5/install.sh | bashnvm install 8
2. 安装 fun 工具
npm install @alicloud/fun -g

fun 工具的某些子命令可能会用到 docker,所以你需要安装好 docker,具体参考文档:Fun 安装教程。

3. 通过 fun 模板生成项目骨架
fun init -n demo https://github.com/muxiangqiu/fc-skeleton-nodejs8.git

项目生成好后,在根目录下有个 README.md 文件,阅读该文件可以帮你快速了解项目骨架为你做了什么,以及相关的命令。具体详情:README.md。

4. 安装依赖
cd demo # 切换到项目根下面,后面的所有命令,都是在项目根下面执行npm install

注意:有少数特殊 npm 模块的安装可能会依赖当前系统环境,为了能正确安装函数运行时的系统环境的 npm 模块,可以通过 fun install 命令来实现,比如 puppeteer,具体参考:开发函数计算的正确姿势 -- 安装第三方依赖。

5. 编译
# 生产编译npm run build# 开发编译(这种编译方式不会进行代码混淆,并且生成 source map 信息,方便开发调试)npm run dev
6. 本地运行函数
fun local invoke demo/demo
7. 运行调试函数

运行调试之前,请先用 npm run dev 命令编译源码,然后以调试的方式运行函数:

fun local invoke -d 3000 demo

程序会提示你输入函数的 event,如果你不需要输入,可以按 ctrl+d 跳过输入,接下来,并不会继续往下执行,只有 vs code 的连接上来后,程序才会继续执行。如何通过 vs code 连上来,并开始调试呢?如下图所示:

8. 部署函数到云端

部署函数的时候需要用到 AK 等下信息,可以通过 fun config 来配置,如果配置过请忽略,部署函数命令如下:

fun deploy

读到这里,这篇"ES6语法和webpack压缩实例分析"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。

函数 代码 运行 命令 文件 项目 编译 开发 语法 工具 模板 版本 资源 服务 用户 参考 支持 实例 实例分析 分析 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 电脑服务器加cpu慢怎么办 天津公安系统招聘网络安全工程师 优化品牌促进网络技术品牌发展 山东专业软件开发价钱是多少 克州网络技术操作 对日软件开发看什么书籍 iis7 ftp 服务器 机房网络安全标语 买服务器怎么分区 徐汇区咨询软件开发销售 数据库原理与应用许薇 上网共建网络安全倡议书 测绘数据库规范和标准 键值数据库应用场景 互联网新宠是科技改变世界吗 美国服务器带宽堵塞是怎么回事 试用期软件开发类工作目标 adb 访问数据库 互联网 网络技术考试题目 软件开发团队负责内容 克州网络技术操作 网络电视机顶盒软件开发自学 黑魂1服务器停了吗 共建网络安全的目的 农村公路养护数据库 北京先进数通网络技术有限公司 通信软件开发设施服务标准 徐汇区咨询软件开发销售 试用期软件开发类工作目标 网络安全案例分析事件和原因
0