vite vs babel+webpack | 创建一个简单的vite项目打包运行

news/2024/11/28 8:46:48/

有babel、webpack这些优秀的框架,为什么使用vite?

因为vite编译快,启动快,使用简单,还自带一个热更新重启的服务器,vite能够自动的帮我打包所用到的依赖,有些依赖只有用到才会导入,不用到不会自动导入,节约体积。最关键的是它会帮我们自动把js进行编译,生成umd.js和common.js适用于所有的环境。一个插件干了两个人的事,这里指的就是babel与webpack。

  • UMD(统一模块定义):这种模块语法会自动监测开发人员使用的是 Common.js/AMD/import/export 种的哪种方式,然后再针对各自的语法进行导出,这种方式可以兼容所有其他的模块定义方法。
  • Common.js :但在后来伴随 node.js 的出现,就出现了一个 js 文件之间的相互依赖问题,要知道 node.js 中是没有 <script> 标签的,于是乎当时就有了 Common.js 模块依赖的语法,引入时使用 var fs = require('fs'),导出用 module.export a = 1;

babel:Babel 是一个工具链,主要用于将采用 ECMAScript 2015+ 语法编写的代码转换为向后兼容的 JavaScript 语法,以便能够运行在当前和旧版本的浏览器或其他环境中。

webpack:是一个用于现代 JavaScript 应用程序的静态模块打包工具。

但是一般的项目需要代码编译完成后,供其他文件导入使用,这时需要webpack进行打包。这里举个例子完整的例子点我:

babel代码编译,左边是编译后的,右边是原代码。babel只是翻译解析工具,不会将所有依赖读取合并进来,如果想在最终的某一个js里,包含 所有依赖的代码,那就需要用到打包工具也就是webpack等工具了。node执行这个lib/index.js文件的时候会报错,找不到i18next,因为没有导入依赖,所以还需要安装webpack进行打包,打包的时候会收集用到的依赖,需要创建webpack.config.js去把编译后lib/index.js进行打包等操作。那我还是用vite省心

请注意:babel和webpack都是可以通过配置文件进行编译打包的配置,一个是babel.config.json,一个是webpack.config.js,配置可以自行查找!

在这里插入图片描述

通过以上的一些简单介绍,知道编译+打包是有多么的麻烦了吧,如果你感兴趣,那么你可以接着往下看,该文章非脚手架,只是一个入门介绍。vite有帮我们创立了一些脚手架,方便我们快速开发,无需我们关心如何编译打包。

npm create vite@latest

那么首先先通过创建一个简单的vite项目开始,过程如下:

1.首先安装git

命令:npm i vite

vite插件中自带热更新服务器,通过npm run dev时会自动启动一个服务器运行。并且,你可以随心所欲的编写你的代码,不用担心兼容性问题,它每次都会帮我们编译运行

2.vite入口

一定要在根目录建立main.js,如果在根目录创建index.html,启动npm run dev时访问HTML模板就是这个index.html

3.在package.json中增加脚本命名,方便启动

"scripts": {

"dev": "vite",//npm run dev等价于在命令行中输入:./node_modules/.bin/vite

"build": "vite build"

},

4.打包

默认导出.msj与umd.js两个文件

配置build-lib的话,可以打包给浏览器,node等环境使用的umd.js。注意:在浏览器使用中时,用script引用导出的umd.js文件,然后通过window.模块名称可以访问到你导出的东西并进行调用。

可以通过配置build-lib项,进行库的编写与导出。注意:这里要有一个入口文件,通过这个入口文件可以导出多个模块。

//./src/index.js文件
export _ from './demo'
export setupCounter from './main'
//demo.js文件
import _ from 'lodash'
console.log('lodashm,你好啊~',_.capitalize('FRED'))
export default _
//main.js文件
export function setupCounter(num) {return num+1
}

5.使用

参考test.html。需要注意的一点是:.mjs是esmodule(需要开启服务访问,不能直接访问,打包出来的也不行,如果想快速运行体验打包后的项目,推荐使用npx启动)。而umd.js是适用于所有的环境,可以通过script标签的src属性引入直接使用,但是打包出来的模块是挂载在window上面的一个对象,对象名称就是上面build-lib的name属性,里面包含所有导出的属性。

  //umd.js 非es module导出<script src="./dist/ouyang-lib.umd.js"></script><script>// 导出的模块console.log('导出的模块:', window.ouyang)// 导出的aaaa变量console.log('导出的aaaa:', window.ouyang.aaaa)// 调用导出的lodashconsole.log(window.ouyang.getLodash().capitalize('aFRED2dF'))//调用默认导出的console.log(window.ouyang.default.capitalize('aFRED2dF'))</script>
  //.mjs 是 es module必须要开启一个服务访问,不能静态页面打开,否则会因为是es module触发ORGS同源策略,无法访问<script type="module">import _,{getLodash,aaaa} from './ouyang-lib.mjs'console.log(_,getLodash())aaaa('打印一下')</script>

6.体验打包后的项目

可以通过cd 到dist目录,然后通过在所在目录运行命令npx serve 启动,默认页面是该目录下的index.html文件,如无则显示该目录下列表

 7.npx与npm区别

一般来讲都可以安装插件,但是npm一般是用来安装卸载更新插件的使用。而npx属于那种用完即删,不留一点痕迹,它首先回去找本地有没有插件,没有则会自动下载安装,使用完后会自动删除插件,不会与本地的插件进行冲突,使用没有负担和后遗症,适合测试临时启动等。


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

相关文章

PPT常用功能及其实现

文章目录 1.幻灯片界面2.幻灯片操作3.文本操作4.图形操作5.图片操作6.艺术字7.SmartArt图片8.表格9.图表10.音频/视频11.超链接12.动画13.幻灯片14、幻灯片放映15.实战演练15.1 明确需求15.2 母版及版式设计15.3 编辑内容15.4 添加动画15.5 幻灯片切换 1.幻灯片界面 2.幻灯片操…

PPT制作三大技巧:图标 、图片背景透明和自动函数

制作PPT的时候常常会遇到自己的内容和下载的PPT模板不匹配问题&#xff0c;包含图标、图片、背景等相关方面。因此本篇博客就从这几个方面入手给出三大制作PPT的技巧。 一、图标 图标给PPT观众以清晰形象的感官。在制作PPT时&#xff0c;避免不了使用一些图标&#xff0c;并且…

PPT设置自动保存时间 mac_电脑怎么设置时间自动关机

工具/材料&#xff1a;电脑 1.按住快捷键“WinR”打开“运行”窗口。 2.在运行命令框中输入“at 18:00 Shutdown -s”&#xff0c;回车或者点击“确定”。 3.这样&#xff0c;到了18点电脑就会出现“系统关机”对话框&#xff0c;默认有30秒钟的倒计时并提示你保存工作。 4.取消…

PPT简明

微软公司的演示文稿软件 Microsoft Office PowerPoint 播报编辑讨论9上传视频 同义词 PPT一般指Microsoft Office PowerPoint 本词条由“科普中国”科学百科词条编写与应用工作项目 审核 。 Microsoft Office PowerPoint是指微软公司的演示文稿软件。 用户可以在投影仪或…

ppt制作总结

2022/08/02ppt27-诺贝尔奖&#xff08; &#xff09; 插入图片-删除背景-即时菜单格式-颜色-设置透明色 图片外框与文本框 同色&#xff0c;需要在母版中查看文本框具体颜色-再设置图片外框颜色 审阅-文字简转繁 添加动作按钮-超链接到某一张幻灯片&设置按…

【实用教程】视频自动播放

自动播放 本人主要用来刷课&#xff0c;亲测&#xff0c;鼠标可以移动到窗体外面&#xff0c;视频不停止。 代码使用方式 复制到检查Console&#xff08;控制台&#xff09;窗体&#xff0c;回车即可。 代码详解 页面元素显示 var b $("body"); var button …

取消参考文献自动编号_取消参考文献引用 - 卡饭网

word中参考文献引用标记删除方法 word中参考文献引用标记删除方法 一般情况下,报告或者论文中引用参考都是以[x]的方式(其中x为数字编号),且标记为右上标。 如果从一个报告或论文中拷贝部分内容到另一个报告中,难免相应的参考文献引用要替换或删除。 此时可以用word的替换功…

PPT设置自动保存时间 mac_你对着PPT抓狂的那几秒,像极了爱情(1)

PPT里的LOGO你Del了好几次&#xff0c;却怎么都删不掉&#xff1b;几十张图片你挨个的排列&#xff0c;总还怀疑没对齐&#xff1b;领导突然说这次PPT不加一点动画&#xff0c;你叹息着删除精巧设置的动画…… 你拼命敲击着Adobe键盘&#xff0c;狂按Surface Arc鼠标。 讲真&am…