vue不同开发方式引用vue文件讲解

news/2024/11/23 17:03:21/

在这里插入图片描述
上面这个图是vue构建后dist目录的文件,这里面包含了各种开发环境所需要的vue文件

一、开发环境和生产环境

主要分为带有prod和不带prod的版本;
带有prod为生产环境版本并进行了代码压缩,没有运行中不会有警告、错误等详细的提示信息
不带prod为开发版本并针对开发时会有警告、错误详细的提示信息。

二、仅运行与运行时编译(非动态编译和动态编译)

带有runtime为仅运行时,并要求所有模板都要预先编译。这是构建工具的默认入口,因为在使用构建工具时,模板通常是预先编译的 (像*.vue文件会预先编译然后运行)。
不带runtime为运行时编译器(动态编译)。如果在dom内或js代码中有模板(例如:‘let component = { template: '<div>runtime template</div>' }’),就需要使用不带runtime的文件

三、使用方式

使用vue开发主要分为三种方式(直接引入vue.js的JavaScript文件方式、使用构建工具、服务端渲染)

1、直接引入vue.js的JavaScript文件方式

这种方式也叫不使用构建工具方式,可以说和第二种方式是对立的(就是一种使用构建工具,一种不使用构建工具),这种方式就是和以前引入jquery方式一样使用,这种方式分两种

  1. IIFEs(vue(.runtime).global(.prod).js
    不使用UMD(模块化规范)构建项目, 使用IIFEs(立即执行函数(自执行匿名函数))构建则可以直接引用JavaScript文件即可,且仅用于通过 <script src="..."> 直接使用,并暴露 Vue 全局。

  2. ES (vue(.runtime).esm-browser(.prod).js)
    用于浏览器内模板编译,通过原生 ES 模块导入使用 (在浏览器中通过<script type="module">来使用),与全局构建版本共享相同的运行时编译、依赖内联和硬编码的 prod/dev 行为

2、使用构建工具

vue(.runtime).esm-bundler.js
用 webpack、vite、rollup、parcel 等构建工具进行开发,则选择带有"esm-bundler“的文件引入,使用时构建工具会根据process.env.NODE_ENV自动加载相应的文件,此方式不提供压缩版本(因为构建工具会在打包后与其余代码一起压缩)
vue.runtime.esm-bundler.js是构建工具默认的选项

3、使用服务端渲染

vue.cjs(.prod).js
使用require()在 Node.js 服务器端渲染使用

结尾:

就目前来说大多数使用构建工具的方式来使用,少数会使用另外两种方式,所以在用构建工具开发时无需过多的关注使用那个vue文件,但有部分情况需要引入指定的文件

例:动态编译,在使用构建工具时,因为构建工具默认使用仅运行时,所以当代码中有使用’let component = { template: '<div>runtime template</div>' }'这种动态编译代码时,项目代码是无法正常运行的,需要指定不带runtime的文件,解决方法也很简单,使用vue-cli时,在vue.config.js中将runtimeCompiler的值设置为true,使用vite时,在vite.config.js中将resolve.aslias的配置增加一项vue: 'vue/dist/vue.runtime.esm-bundler.js',需注意开发环境与生产环境

还有一些小白分不清webpack、vite、vue-cli这些关系的可以看看这篇文章一篇文章说清 webpack、vite、vue-cli、create-vue 的区别


http://www.ppmy.cn/news/82659.html

相关文章

腾讯云图形验证码申请流程

目录 一、官方指引二、操作步骤1.步骤1&#xff1a;新建验证&#xff0c;获取验证码密钥2.步骤2&#xff1a;客户端接入验证码&#xff0c;展示验证页面3.步骤3&#xff1a;服务端接入验证码&#xff0c;调用票据校验 API 进行二次校验 一、官方指引 https://cloud.tencent.co…

NSS周常刷密码(1)

感觉没怎么做密码,就每周上nss随便做点 稍微难点的会分析 [SWPU 2020]happy import gmpy2 from Crypto.Util.number import * import z3c 0x7a7e031f14f6b6c3292d11a41161d2491ce8bcdc67ef1baa9e e 0x872a335 #q q*p^3 128536731745208998078944182958039785532190189…

drf-------权限组件

# 大家都登录了&#xff0c;但有的功能(接口)&#xff0c;只有超级管理员能做&#xff0c;有的功能所有登录用户都能做----》这就涉及到权限的设计了 # 权限设计&#xff1a;比较复杂---》有acl&#xff0c;rbac&#xff0c;abac。。。 # 咱们现在只是为了先讲明白&#xff0c;…

linux(动静态库)

目录&#xff1a; 1.文件时间的概念 2.动态库和静态库 3.如何制作动静态库 -------------------------------------------------------------------------------------------------------------------------------- 1.文件时间的概念 我们现在就开始学习这三个时间分别表示了什…

linux0.12-10-5-rs_io.s

[534页] 10-5 rs_io.s程序 10-5-1 功能描述 该汇编程序实现rs232串行通信中断处理过程。在进行字符的传输和存储过程中&#xff0c;该中断过程主要对终端的读、写缓冲队列进行操作。它把从串行线路上接收到的字符存入串行终端的读缓冲队列read_q中&#xff0c;或把写缓冲队列…

Smoothieware_best-for-pnp 工程文件编译选项含义整理

文章目录 Smoothieware_best-for-pnp 工程文件编译选项含义整理概述arm-none-eabi-gcc 的编译选项含义整理 - S(汇编)文件arm-none-eabi-gcc 的编译选项含义整理 - C文件arm-none-eabi-gcc 的编译选项含义整理 - CPP文件库的打包arm-none-eabi-gcc 的编译选项含义整理 - C文件 …

括号的生成(动态规划和递归两种算法来实现)

题目&#xff1a; 数字 n 代表生成括号的对数&#xff0c;请你设计一个函数&#xff0c;用于能够生成所有可能的并且 有效的 括号组合。 示例1&#xff1a; 输入&#xff1a;n 3 输出&#xff1a;["((()))","(()())","(())()","()(())&qu…

肝一肝设计模式【九】-- 享元模式

系列文章目录 肝一肝设计模式【一】-- 单例模式 传送门 肝一肝设计模式【二】-- 工厂模式 传送门 肝一肝设计模式【三】-- 原型模式 传送门 肝一肝设计模式【四】-- 建造者模式 传送门 肝一肝设计模式【五】-- 适配器模式 传送门 肝一肝设计模式【六】-- 装饰器模式 传送门 肝…