Vue2源码解析实现—rollup搭建环境

vue原理前期准备工作之rollup 1.vue的打包工具 vue的源码打包工具用的是一款专门用来打包js的工具rollup rollup的常见配置如下 和webpack的配置也类似 @bable/preset-env配置参考 import babel from "rollup-plugin-babel" import serve from "rollup-plugin-serve" export default { input:'./src/index.js', // 入口文件 output:{ form 阅读详情

Vue2源码解析实现

rollup搭建环境

  • 项目初始化
    执行 npm init -y 进行项目初始化,生成package.json
  • 安装依赖
    执行 npm install @babel/core @babel/preset-env rollup rollup-plugin-babel rollup-plugin-serve -D 安装依赖
  • 打包文件的配置
    创建rollup.config.js文件
    1. input:打包的入口文件
    2. output:打包的出口文件
      • file:出口文件的路径
      • format:打包的类型 一般是umd 它支持前端也支持后端
      • name:全局变量名
      • sourcemap:是否进行映射
    3. plugins:使用的插件
      • babel:高级语法转成初级语法,是一个函数,里面对象属性的exclude是排除不需要转换的文件
      • server:开启一个服务,port:开启服务的端口号,contentBase:空字符串就是当前目录,openPage:启动的文件
  • 执行打包命令
    在package.json中的scripts里面写入**“dev”:“rollup -c -w”**
    在终端执行 npm run dev
  • 代码

package.json


//=======package.json=======
{
  "name": "vue2-source-code",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev":"rollup -c -w"
  },
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "@babel/core": "^7.15.0",
    "@babel/preset-env": "^7.15.0",
    "rollup": "^2.56.0",
    "rollup-plugin-babel": "^4.4.0",
    "rollup-plugin-serve": "^1.1.0"
  }
}

rollup.config.js


//=======rollup.config.js=======

import babel from "rollup-plugin-babel";
import serve from "rollup-plugin-serve";

export default {
  input: "./src/index.js", // 打包的入口文件
  output: {
    file: "dist/vue.js",
    formData: "umd", // 支持前端也支持后端   在window上Vue
    name: "Vue", // 全局变量名
    sourcemap: true, // 进行映射
  },
  plugins: [
    // 高级语法转成初级语法
    babel({
      exclude: "node_modules/**", // 排除不需要转换的文件
    }),
    // 开启一个服务
    serve({
      port: 3000, // 开启服务的端口号
      contentBase: "", // 空字符串的话就是当前目录
      openPage: "/index.html",
    }),
  ],
};
  • 项目目录
    在这里插入图片描述
手写 Vue 源码 === 搭建 Monorepo 环境 Monorepo 是管理项目代码的一个方式,指在一个项目仓库(repo)中管理多个模块/包(package)。Vue3 源码采用 monorepo 方式进行管理,将模块拆分到 package 目录中。作为一个个包来管理,这样职责划分更加明确。Vue3 中使用pnpmworkspace来实现monorepo是快速、节省磁盘空间的包管理器。主要采用符号链接的方式管理模块) 阅读详情

相关推荐

RollUp 四舍五入

RollUp c语言 4*3 四舍五入 舍位平衡算法原理可扩展

手撕Vue源码(一) rollup的基本配置

rollup简介 rollup类似于webpack,可以用来打包我们写的类库,今天我们尝试模仿vue,写一个相似的类库。 安装 npm install rollup @babel/core @babel/preset-env rollup-plugin-babel -D 环境配置 入口文件设置 入口文件表示我们用rollup将要封装的类库 这里将文件新建在src/index.js中 rollup配置 在全局目录下新家rollup.config.js文件 文件配置如下: import

wenyeqv的博客 490

最优化问题——一维搜索(一)

最优化问题——一维搜索 1. 一维搜索的引入 1.1 从非线性规划问题到一维搜索 在前面的文章中,我们提到了基于迭代的非线性规划问题的求解思路。在求解过程中,我们提到了在每一步的迭代中都需要对计算步长因子,其计算公式为: λk=minλf(xk+λp)λ_k=min_{λ}f(x_k+λp)λk​=minλ​f(xk​+λp) 我们将f(xk+λp)f(x_k+λp)f(xk​+λp)视为λ的一元函数,我们的目标就是求这个一元函数的极小值。对于这个问题,我通常的求解方式为一维搜索。 1.2 一维搜索的基本形

hei653779919的博客 7359

从环境配置开始,一步步实现Vue(一)

1 准备工具来搭建环境 我们使用的工具是 rollup 。 什么是rollup? Rollup是一个JavaScript模块打包工具,比其他工具(webpack等)更加适合类库打包。 所以开发应用的时候,更加适合使用webpack 开发自己的类库,就用rollup。 而且相对来说配置简单 比较轻便。 项目初始化 直接 在项目文件夹的终端中输入 npm init -y 就好 安装rollup np...

qq_43475182的博客 251

多智能体强化学习MASAC算法:从原理到PyTorch实战详解

深度强化学习通过智能体与环境的交互试错来学习最优策略,是解决复杂序列决策问题的核心技术。其核心原理在于利用价值函数或策略梯度来最大化累积奖励,在机器人控制、游戏AI等领域展现出巨大技术价值。当面对多个智能体需要协同或竞争的复杂动态环境时,单智能体算法因环境非平稳性而面临挑战,多智能体强化学习应运而生。Multi-Agent Soft Actor-Critic (MASAC) 算法融合了SAC的稳定高效与中心化训练去中心化执行的范式,通过维护中心化Critic网络和独立策略网络,有效解决了多智能体协作中的信用

weixin_30080745的博客 328

Stata极简生存分析

1. 导入数据 webuse drugtr,clear *webuse -- Use dataset from Stata website stset,clear *上一行命令导入进来的数据是“生存时间数据”,会比最原始的数据多四列,这一行命令的目的是重置为原始数据,之所以这样做,是为了显示数据处理的全部过程 codebook drug codebook studytime codebook died codebook age *codebook -- Describe data contents 2.

TOP生物信息 2336

前端组件/库打包利器rollup使用与配置实战

目前主流的前端框架vue和react都采用rollup来打包,为了探索rollup的奥妙,接下来就让我们一步步来探索,并基于rollup搭建一个库打包脚手架,来发布自己的库和组件。前言写r...

奇舞周刊 6107

vsomeip3 双机通信文件配置

验证环境 vsomeip地址Android运行命令,红色的地方需要和配置文件一样Linux运行命令,红色的地方需要和配置文件一样Linux service配置文件 ,红色的地方需要更改Android client配置文件,红色的地方需要更改,蓝色的地方可不要 ...

m0_37132481的博客 5222

ES6项目实战

es6 实战 前端启动 yarn install yarn dev 后端启动 rollup -c -w (等待30s) nodemon ./dist/bundle.js 后端 - node 框架; Koa express Express 是一个保持最小规模的灵活的 Node.js Web 应用程序开发框架,为 Web 和移动应用程序提供一组强大的功能。 回调函数; 内置了很多 中间件; koa Koa 是一个新的 web 框架,由 Express 幕后的原班人马打造, 致力于成为 web

cyj5201314的博客 1591

2篇5章1节:实验流行病学的核心特征和设计原则

本文系统阐释实验流行病学的核心定义、四大核心特征、四大基本原则及主流设计类型,结合骨科、肿瘤科、儿科、精神科、内外妇儿及公共卫生等多学科临床实践案例,具象化解读人为干预、随机分组、平行对照、前瞻性设计的核心内涵与应用价值。同时,规范梳理对照、随机、盲法、重复四大研究基本原则,详细介绍临床试验、现场试验、社区试验三类主流研究设计的适配场景与应用差异。

MD Code 167

【物联网】基于LORA组网的远程环境监测系统设计(ThingsCloud云平台版)_资料编号34

实现一主多从的LORA组网远程通信,主机和两个从机都配备了STM32F103单片机与 LoRa 模块,主机作为中心设备及WIFI网关,负责接收和发送数据到远程物联网平台和手机APP,两个从机则负责采集数据并通过各自的 LoRa组网将数据发送给主机。

嵌入式阿齐Archie 1万+

vue源码(一)

npm i:添加 --sourcemap此处使用vue的版本是2.6目录:dist 发布目录examples 范例flow 试代码scripts 构建脚本src 源码compiler 编译器相关core 核心代码components 通用组件如keep-aliveglobal-api 全局apiinstance 构造函数等observer 响应式相关utilvdom 虚拟DOM相关......术语解释:runtime 仅包含运行时,不包含编译器。

coding... 1150

TC8:SOMEIPSRV_SD_MESSAGE_07-09

TTL为服务实例的生命周期。在此生命周期之后,不提供服务实例。

jasonj333 908

BootstrapVue 贡献指南:从本地开发环境搭建到 Pull Request 提交的完整实战

BootstrapVue 是一个为 Vue.js 2.x 提供 Bootstrap v4 组件、指令与图标实现的组件库,其源码仓库包含 `src`(组件实现)、`docs`(文档站点)与 `scripts`(构建工具链)三大部分。本文围绕仓库根目录的 [CONTRIBUTING.md](https://link.gitcode.com/i/ce7c58caf71bbdde74102334a86ae

gitblog_00094的博客 503

RK3588平台开发系列讲解(硬件篇-功能外设2)

RK3588 芯片内置两个USB3.0 OTG控制器(内嵌2个USB2.0 OTG,下图绿色处),1个USB3.0 HOST 控制器,2个USB2.0 HOST控制器。这些控制器与PHY的内部复用图如下:USB3.0 OTG0 控制器支持SS/HS/FS/LS, 内嵌的USB2.0(HS/FS/LS)信号采用USB2.0 OTG PHY, 信号名见下图的红色方框内;RK3588目前仅此接口支持做Fireware的Download,应用中请务必要预留出。

whm128的博客 2508

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

【学习笔记】Vue3源码解析:第一部分-实现vue3环境搭建

Monorepo 是一种项目代码管理方式,指单个仓库中管理多个项目,是一种将多个peckage放在一个repo中的代码管理模式。vue3中使用 yarn workspace+lerna 来管理项目。这篇笔记记录实现vue3源码项目的环境搭建

youyoufenglai的博客 1827

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

【手写 Vue2.x 源码】第一篇 - 使用 rollup 构建 Vue 环境

第一篇-使用 rollup 构建 Vue 环境:工程初始化、安装依赖、创建入口、配置 Rollup 、构建脚本、Vue 打包构建,vue 使用测试;

BraveWangDev 1295

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Vue 是如何用 Rollup 打包的?

大家好,我是若川。持续组织了6个月源码共读活动,感兴趣的可以点此加我微信 ruochuan12参与,每周大家一起学习200行左右的源码,共同进步。同时极力推荐订阅我写的《学习源码整体架构...

u012384510的博客 2161

vue 2.6版本没有build 如何进行设置_Vue源码阅读连载之环境搭建

代码下载github地址 vuejs/vue绝大多数情况下,你用git clone命令是拉不下来的,源码的git内容太多了,一会会就断了,网上搜了一下,有的说是用git fetch能达到断点续传的目的,回头我做一下测试,先用下载zip包的方式来获取代码。默认是dev分支,大约是1.7M,下载vue-dev.zip后,解压后大约有6M多。开撸后第一个工作和npm install。npm insta...

weixin_39912163的博客 967

Vue源码解析

主要目录结构 scripts:构建相关的脚本和配置文件 dist:构建后的文件 flow:Flow的类型声明 packages:vue-server-render 和 vue-template-compiler,它们作为单独的NPM包发布 test:所有的测试代码 examples:实例代码 types:TypeScript 类型定义 src:源代码 compiler : 与模版编译相关的代码 core : Vue核心库(通用的、与平台无关的运行时代码) observer :实现变化侦测的代码 vdom

weixin_43132396的博客 6841

rollup环境配置

首先在VScode中新建文件夹vue_sc,然后终端打开定位到打开的文件夹,输入“npm init -y”初始化配置项,运行成功之后文件夹新增package.json文件。配置rollup:在vue_sc下新建文件rollup.config.js和.babelrc。在vue_sc文件夹下新建文件夹src,然后在src文件夹下新建index.js入口文件。在根目录下创建index.html文件,引入dist/vue.js,打印Vue。在vue_sc文件夹下新建文件index.html。

qq_52476758的博客 1476

vue-sfc-rollup:快速构建可发布Vue组件的终极指南

vue-sfc-rollup是一款CLI模板工具,能快速搭建Vue单文件组件(SFC)或组件库的编译环境,帮助开发者轻松将组件发布到npm。尽管该项目已被标记为 deprecated,但对于需要快速上手组件打包的开发者来说,其简洁的脚手架和配置仍具有实用价值。 ## 为什么选择vue-sfc-rollup? vue-sfc-rollup的核心优势在于**零配置快速启动**。它自动生成必要的构建

gitblog_00972的博客 929

手写Vue2源码

全局的组件"})template:"子组件 ",template:"子组件自己声明的button

SongZhengxing_的博客 1267

Vue源码 - 1. rollup 配置

Rollup 是一个 JavaScript 模块打包器,可以将小块代码编译成大块复杂的代码 初始化一个项目 npm init -y 安装依赖模块 @babel/core (使用babel的核心模块) @babel/preset-env (将高级语法转换成低级语法) cross-env (设置环境变量) rollup-plugin-babel (桥梁) rollup-plugin-serve (实现静态服务) npm i rollup @babel/core @babel/preset-en.

qq_35432512的博客 512

Vue2 源码阅读笔记

Vue2源码阅读笔记,从构建到运行再到编译最后进行渲染和更新的路径去解读Vue2.6的源码。

musio777的博客 1082

vue2源码解析(1)——rollup详解

rollup是适用于打包JavaScript库和组件,以及需要生成更小包体积的应用程序。相比于webpack可以生成更小、更精简的代码包。同时rollup和webpack是不排斥的,在项目中可以同时使用哦!有兴趣的小伙伴快来实践操作一下吧!

如果相遇,那么你好哦~ 587
上一篇: Vue移动框鼠标拖拽自定义指令
下一篇: Vue2源码解析实现—Vue响应式实现(对data中对象的属性劫持)
龟中的程序员
博客等级 码龄7年 328粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

龟中的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值