Vue打包后的不同版本解析

news2024/11/16 16:43:52

vue源码打包版本

这里选取我们开发中常见的几个版本进行说明。

1、vue(.runtime).global(.prod).js

  • 在html页面中通过 <script src=“...”> 标签直接使用。
  • 通过CDN引入和npm下载的Vue就是这个版本。
  • 会暴露一个全局的Vue来使用。

(.runtime)和(.pro)表示可选项,分别指特定的运行时版本和生产版本。

2、vue(.runtime).esm-browser(.prod).js

  • 用于通过原生ES模块导入使用 (在浏览器中通过 <script type="module"> 来使用)。

3、vue(.runtime).esm-bundler.js

  • 用于 webpack,rollup 和 parcel 等构建工具。
  • 构建工具中默认是vue.runtime.esm-bundler.js
  • 如果我们需要解析模板template,那么需要手动指定vue.esm-bundler.js

这里就清楚了为什么webpack对vue代码打包时,查看运行的控制台会出现下面一段警告信息:

// 默认引入的是 vue.runtime.esm-bundler.js 版本
import { createApp } from 'vue'; 
// 修改为 vue.esm-bundler 版本
import { createApp } from 'vue/dist/vue.esm-bundler';

4、vue.cjs(.prod).js

  • 服务器端渲染使用。
  • 通过require()在Node.js中使用。

运行时+编译器 vs 仅运行时

对应着 runtime+compiler 和 runtime-only。

在Vue的开发过程中我们有三种方式来编写DOM元素:
  • 方式一:template模板的方式(之前经常使用的方式)。
  • 方式二:render函数的方式,使用h函数来编写渲染的内容。
  • 方式三:通过.vue文件(SFC)中的template来编写模板。
三种方式的模板如何处理:
  • 方式二中的h函数可以直接返回一个虚拟节点,也就是Vnode节点。
而方式一和方式三的template都需要有 特定的代码 来对其进行解析:
  • 方式三.vue文件中的template可以通过在vue-loader对其进行编译和处理。
  • 方式一种的template我们必须要通过源码中一部分代码来进行编译。
因此Vue在选择版本的时候分为 运行时+编译器 vs 仅运行时
运行时+编译器 包含了对template模板的编译代码,更加完整,但是也更大一些;
仅运行时 没有包含对template版本的编译代码,相对更小一些。

 

Bundler 构建功能标志

针对以上警告,参阅https://github.com/vuejs/core/blob/main/packages/vue/README.md

贴出对于webpack构建工具的配置示例:

 

附:VSCode对SFC文件的支持

SFCsingle-file components (单文件组件)

plugin1:Vetur——从Vue2开发就一直在使用的,支持Vue的插件。
plugin2:Volar——官方推荐的插件(后续会基于Volar开发官方的VSCode插件)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/96860.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2022年12月python的字符串常用操作

字符串在整整个开发的过程中&#xff0c;使用频率相对来说是较高的。 在此总结几个字符串的常用操作&#xff0c; 字符串的操作&#xff0c;转换后即生成为新字符串 【长度统计 切片&#xff1a; 【 根据索引进行切片str[开始索引:结束索引:步长] 根据指定标识符进行切片str.sp…

【码极客精讲】桶排序

桶排序 (Bucket sort)或所谓的箱排序&#xff0c;是一个排序算法&#xff0c;工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序&#xff08;有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序&#xff09;。桶排序是鸽巢排序的一种归纳结果。当要被排…

【硬币识别】形态学硬币计数【含Matlab源码 683期】

⛄一、硬币图像识别简介 本设计为硬币图像识别统计装置&#xff0c;通过数码相机获取平铺无重叠堆积的硬币的图像&#xff0c;并通过Matlab工具处理后统计硬币的数目。 1 图像格式转换 取的图像格式为RGB彩色图像&#xff0c;需要先将其转换为8位256级的灰度图像。本程序采用…

SAP Gateway 里的 REST 概念

SAP Gateway 有助于轻松配置和使用 SAP Business Suite 系统的业务逻辑和内容&#xff0c;用于移动和 Web 应用程序。它降低了访问 SAP 数据所需的复杂性和技能组合&#xff0c;从而消除了部署障碍。使用简单的界面有助于缩短开发时间。 SAP Gateway 使以人为本的应用程序能够…

【笔记:模拟CMOS集成电路】MOS特性仿真分析

【笔记&#xff1a;模拟CMOS集成电路】MOS特性仿真分析前言一、电路图二、电路仿真&#xff08;1&#xff09;Ids与Vds的关系仿真仿真结果仿真结果分析&#xff08;2&#xff09;Ids与Vgs的关系仿真仿真结果仿真结果分析前言 本文为本人学习模拟集成电路相关知识的的学习笔记&a…

USB接口WIFI(MT7601芯片)的驱动源码移植过程详解(驱动源码编译、wpa_supplicant工具交叉编译、文件系统移植)

1、MT7601的移植步骤 (1)确认你的WT7601网卡硬件是正常的&#xff1b; (2)修改驱动源码&#xff0c;依赖内核源码树编译并加载&#xff1b; (3)交叉编译wpa_supplicant工具&#xff0c;移植到根文件系统里&#xff1b; (4)添加驱动和wpa_supplicant工具依赖的配置文件&#xff…

2022 年时间序列分析最顶流的 Python 库

时间序列分析是一种强大的工具&#xff0c;可用于从数据中提取有价值的信息并对未来事件进行预测。它可用于识别趋势、季节性模式和变量之间的其他关系。时间序列分析还可用于预测未来事件&#xff0c;例如销售、需求或价格变动。 如果你在 Python 中处理时间序列数据&#xf…

数据库实验三:完整性语言实验

实验三 完整性语言实验 实验 3.1 实体完整性实验 1.实验目的 ​ 掌握实体完整性的定义和维护方法。 2.实验内容和要求 ​ 定义实体完整性&#xff0c;删除实体完整性。能够写出两种方式定义实体完整性的SQL语句&#xff1b;创建表时定义实体完整性、创建表后定义实体完整性…

C++ Reference: Standard C++ Library reference: Containers: map: map: key_comp

C官网参考链接&#xff1a;https://cplusplus.com/reference/map/map/key_comp/ 公有成员函数 <map> std::map::key_comp key_compare key_comp() const;返回键比较对象 返回容器用于比较键的比较对象的副本。map对象的比较对象在构造&#xff08;construction&#xff…

kubernetes 挂载传播

kubernetes 挂载传播 kubernetes 的 mountPropagation 翻译成中文就是挂载传播。挂载传播提供了共享卷挂载的能力, 它允许在同一个 Pod, 甚至同一个节点内, 在多个容器之间共享卷的挂载。 说白了就是在容器或 host 内的挂载目录中 再 mount 了一个别的挂载。 kubernetes 中 卷…

第18章 条件概率

第18章 条件概率 18.1蒙特霍尔困惑 对于上一章的三个门的问题&#xff0c;有一个漏洞。假设参赛者选择门A且门B后有一只山羊&#xff0c;刚好产生3个结果&#xff1a; 以上结果出现的概率分别是1/18,1/18,1/9。 在这些结果中&#xff0c;只有最后一个结果(C,A,B)&#xff0c…

Redis常见面试题(三)

目录 1、Redis String值最大存储多少? 2、Redis事务有什么用? 3、Redis事务相关的命令有哪几个? 4、Redis事务是原子性的吗? 5、Redis持久化有什么用? 6、Redis有哪几种持久化方式? 7、Redis持久化方式如何选择? 8、如何保证Redis中的数据都是热点数据? 9、Red…

vue前后端分离项目打包成app,部署成移动端

将vue项目打包成app,在手机上运行。 1. vue打包 npm run build 先将vue的前端项目打包成dist文件夹 2. 安装hbuilderX Hbuilder官网地址 3. hbuilderX 1&#xff09;新建项目 我是vue的&#xff0c;所以直接选择的h5app&#xff0c;然后起个名字&#xff0c;选择路径。 2…

微服务实用篇6-分布式搜索elasticsearch篇2

今天我们继续学习分布式搜索引擎elasticsearch&#xff0c;今天主要学习四个模块&#xff0c;分别为DSL查询文档&#xff0c;搜索结果处理&#xff0c;RestClient查询文档&#xff0c;还有最好演示一个旅游案例。下面开始今天的学习吧。 目录 一、DSL查询文档 1.1、DSL查询分…

Hadoop学习----软件安装

Hadoop源码下载重新编译 软件下载&#xff1a;https://hadoop.apache.org/releases.html 建议是下载源码包。 源码包和官方编译安装包有什么不一样呢&#xff1f; 正常情况下&#xff0c;非生产环境直接使用官方编译安装包即可&#xff0c;但是官方提供的安装包不支持本地库。…

ANTLR4入门(二):图示说明eclipse安装Antlr4IDE插件的过程

如果你能正常通过Eclipse Market找到antlr4的插件并正常安装&#xff0c;可以忽略本文。 如果不能&#xff0c;那多半是因为网络问题导致安装Antlr4IDE插件时无法下载文件造成的。我就遇到了这个问题&#xff0c;无法下载的原因很复杂&#xff0c;我不想去深究了&#xff0c;我…

WPF/XAML关于x:key和x:name的区别,全面解读超详细

x:key和x:name的区别 x:Keyx:Name用于xaml Resources&#xff0c;ResourceDictionary用在ResourceDictionary以外任何地方使用key访问xaml指定对象使用name访问xaml对象标识资源创建和引用&#xff0c;存在于 ResourceDictionary 中的元素唯一标识对象元素&#xff0c;以便于从…

【Spring】SpringCloud

目录 一、SpringCloud 二、微服务介绍 1.系统架构演变 1.1 单体应用架构 1.2 垂直应用架构 1.3 分布式架构 1.4 SOA架构&#xff08;面向服务的架构&#xff09; 1.5 微服务架构&#xff08;服务的原子化拆分&#xff09; 2.微服务架构介绍 2.1 问题&#xff1a; 2.2…

与新手一起快速了解「什么是次世代」?

次世代&#xff08;英文&#xff1a;Next Generation&#xff09;&#xff0c;源自日本语&#xff0c;即下一个时代&#xff0c;未来的时代。与传统游戏相比&#xff0c;次世代游戏是把次世代游戏开发技术融入到现代游戏之中&#xff0c;通过增加模型的面数和贴图的数据量并使用…

JDK8系列之使用Function函数式接口

一、函数式接口是jdk8的新特性之一&#xff0c;函数式接口是只包含一个抽象方法声明的接口。按分类主要分为四大接口类型: Function、Consumer、Predicate、Supplier。 接口参数返回值说明Supplier<T>无T供给型&#xff0c;无参&#xff0c;返回一个指定泛型的对象Consu…