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

Python实战:基于PyG和Stable-Baselines3复现柔性车间调度算法(附数据集)

本文提供了一份基于图神经网络与深度强化学习的柔性车间调度实战指南。通过PyTorch Geometric构建异构图表示车间状态,并利用Stable-Baselines3中的PPO算法训练调度智能体,详细介绍了从环境建模、网络设计到训练评估的完整代码实现,帮助开发者构建可复用的工业级智能调度系统。

ansible6ops的博客 607

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

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

qq_43475182的博客 251

【MFiX后处理】MFiX中使用des_usr_var输出颗粒的传热量(2020-11-27更新变更输出变量名方法)

参考之前Yin的那一篇博客 https://www.cnblogs.com/Jay-CFD/p/10621274.html 输出一下颗粒传热量 使用的算例是fluid_bed_dem_2d 打开des scalar tracking 前面都和Yin那篇一样,打开enable user scalar tracking 输入2 因为第一个用来测试Y加速度了 第二个输出传热量 然后在output vtk中勾选好 更改源代码 源代码为des_thermo_newvalues.f 在mfix-GUI自带的ed

beidou111的博客 1532

获取气体传感器温度调制响应数据并转换为NumPy数组

本任务旨在获取气体传感器在温度调制条件下的响应数据,将其处理为结构化数据格式(NumPy数组),以便用于机器学习模型训练。整个过程包含数据采集、预处理、特征工程和格式转换等关键步骤。

huanghm88的专栏 1207

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

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

奇舞周刊 6107

UCIE Specification详解(八)

Logical Physical Layer(逻辑物理层)

Crazzy_M的博客 1608

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

30分钟上手YOLO26 nano:INT8量化部署到智能相机,推理速度提升43%

微调代码(仅需5行,数据集遵循COCO格式)data="custom_data.yaml", # 数据集配置文件epochs=20, # 少量轮数即可收敛batch=8,imgsz=640model.save("yolov26n_custom.pt") # 保存微调后的模型本文在30分钟内完成了YOLO26 nano的INT8量化与智能相机部署,核心步骤为环境准备→模型获取→ONNX导出→INT8量化→部署推理。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 987

YOLOv13全网首发:CVPR2026 MixerCSeg | DEGConv方向引导边缘门控,破解细长裂缝检测难题

DEGConv通过方向先验嵌入、边缘增强卷积和动态门控三大机制,针对性解决了YOLO在处理裂缝类细长、多方向、低对比度目标时的特征提取不足问题,显著提升了裂缝检测的精度与鲁棒性。

①答疑群聊服务;②YOLO大模型知识问答系统;③计算机视觉论文生成智能体; 438

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

【异常】SpringCloud Gateway报错503 SERVICE_UNAVAILABLE “Unable to find instance for xxx-gen“

网关服务报错,如下。

奶爸的编程之路,也就一周冷个三天 4223

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

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

gitblog_00094的博客 503

基于STM32、HAL库的MPX5500DP气压传感器 驱动程序设计

define MPX5500DP_MIN_VOLTAGE 0.2f // 最小输出电压(V)#define MPX5500DP_MAX_VOLTAGE 4.7f // 最大输出电压(V)#define MPX5500DP_MIN_PRESSURE 0.0f // 最小压力(kPa)#define MPX5500DP_MAX_PRESSURE 500.0f // 最大压力(kPa)* @brief 读取压力值(kPa)// 计算压力值 (线性转换)

corlin6688的博客 196

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

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

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

youyoufenglai的博客 1827

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

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

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

BraveWangDev 1295

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

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、付费专栏及课程。

余额充值