首页 > 其他分享 >web和vue-cli

web和vue-cli

时间:2022-08-15 16:01:16浏览次数:93  
标签:web vue cli 文件 JavaScript webpack 打包

1、什么是Webpack

WebPack可以看做是模块打包机:它做的事情是,分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用。

2、为什要使用WebPack

打包:减少了http请求数量,让页面加载和显示更快在开发后完成的这个合并的过程就是打包。webpack在打包过程中,会分析各个文件之间的依赖关系,然后生成一个依赖图并用文件的形式保存下来,未来浏览器运行代码的时候就可以读取这个文件,就知道了各个代码块之间的关联以及如何调用了。

 

打包是webpack最核心的功能,webpack其它所有的功能都是为了让打包这个功能更好。我们从一个简单的html页面介绍了通过webpack对模块进行打包,既保留了单个模块的可维护性,又减少了页面的http请求,减少了页面加载时间,从而增加了页面的显示速度,让整个应用的体验更好。

另外如今的很多网页其实可以看做是功能丰富的应用,它们拥有着复杂的JavaScript代码和一大堆依赖包。为了简化开发的复杂度,前端社区涌现出了很多好的实践方法

a:模块化,让我们可以把复杂的程序细化为小的文件;

b:类似于TypeScript这种在JavaScript基础上拓展的开发语言:使我们能够实现目前版本的JavaScript不能直接使用的特性,并且之后还能转换为JavaScript文件使浏览器可以识别;

c:scss,less等CSS预处理器

.........

这些改进确实大大的提高了我们的开发效率,但是利用它们开发的文件往往需要进行额外的处理才能让浏览器识别,而手动处理又是非常繁琐的,这就为WebPack类的工具的出现提供了需求。

3、WebPack和Grunt以及Gulp相比有什么特性

Gulp/Grunt是一种能够优化前端的开发流程的工具,而WebPack是一种模块化的解决方案,不过Webpack的优点使得Webpack可以替代Gulp/Grunt类的工具。

Grunt和Gulp的工作方式是:在一个配置文件中,指明对某些文件进行类似编译,组合,压缩等任务的具体步骤,这个工具之后可以自动替你完成这些任务。

Webpack的工作方式是:把你的项目当做一个整体,通过一个给定的主文件(如:index.js),Webpack将从这个文件开始找到你的项目的所有依赖文件,使用loaders处理它们,最后打包为一个浏览器可识别的JavaScript文件。

以gulp为代表的传统打包最大的问题是解决不了按需打包,就更别说按需加载了,因为传统的打包思路是遍历源文件 => 匹配规则 => 打包/处理,也就是说只要被规则命中了,即便是程序用不到的模块也会被无脑打包,根本原因是按需这个事无法被规则描述,只能被程序逻辑描述。

webpack的打包思路就是从程序逻辑入手:入口文件 => 分析代码 => 找出依赖 => 打包,这样代码里不出现的模块就不可能被打进包里,甚至还可以实现按需加载,这就是webpack最有价值的地方。

4、什么是vue-cli

vue-cli是vue.js的脚手架,它是一个专门为单页面应用快速搭建繁杂的脚手架,它可以轻松的创建新的应用程序而且可用于自动生成vue和webpack的项目模板。

主要作用:目录结构、本地调试、代码部署、热加载、单元测试

5、webpack与vue-cli的关系

vue-cli是基于nodejs+webpack封装的命令行工具。你可以理解为汇集了各种命令的 bash,或者bat。

用vue-cli执行build,实际上是webpack做的。原本需要自己配置webpack的相关配置,被cli简化了。并且按照vue的用户习惯整理了一套构建和目录规范。

标签:web,vue,cli,文件,JavaScript,webpack,打包
From: https://www.cnblogs.com/ericyjchung/p/16588573.html

相关文章

  • Vue 检测数据
    主要逻辑类似:<script>letdata={name:'name',address:'address',};//创建了一个监视对象,监视data属性的变化constobs=ne......
  • -webkit-line-clamp实现双行省略
    -webkit-line-clamp用来限制在一个块元素显示的文本的行数。为了实现该效果,它需要组合其他的WebKit属性。常见结合属性:单行文本溢出省略-webkit-line-clamp:1/2display......
  • 加载远程vue文件 vue3-sfc-loader
    需求项目在写一些需求的时候,现场可能会有些变动,但是不想从新打包,这种情况可以考虑单独不打包的vue文件注意vue2import{loadModule}from'vue3-sfc-loader/dist/vue2......
  • VUE+Django前后端分离-第二部分
    四、前端layout及页面跳转1、在src/components目录下创建HeaderAsideMainHeader.vue:<template><header><div><h1style="margin-to......
  • 通过网页形式创建vue
      命令:npmui  在终端输入vueui进入网页    即可进行创建......
  • VUE+Django前后端分离-第一部分
    一、创建django项目1、创建django项目在指定目录下,用django-adminstartprojectdjango_vue创建Django项目2、在django项目下创建应用 2.1在django_vue目录下通过命......
  • CloseableHttpClient设置超时时间demo 未设置默认是2分钟
    #CloseableHttpClient设置超时时间demo未设置默认是2分钟importorg.apache.http.HttpHeaders;importorg.apache.http.client.config.RequestConfig;importorg.ap......
  • vue源码阅读---vm实例上的属性
     vnode.$attrs:vnode.$slot:组件实例里插槽的内容;组价开始标签和组件结束标签里包裹的内容;vnode.children:普通元素组件的子节点;  vnode.componentInstacne:指向组件......
  • vue 项目的文件/文件夹上传下载
    ​4GB以上超大文件上传和断点续传服务器的实现随着视频网站和大数据应用的普及,特别是高清视频和4K视频应用的到来,超大文件上传已经成为了日常的基础应用需求。但是在很......
  • JS学习-Web Workers API接口
    WebWorkersAPI接口通过使用WebWorkers,Web应用程序可以在独立于主线程的后台线程中,运行一个脚本操作。这样做的好处是可以在独立线程中执行费时的处理任务,从而允许主线......