vue cli+webapck4需要哪些步奏

这次给大家带来vue cli+webapck4需要哪些步奏,vue cli+webapck4的注意事项有哪些,下面就是实战案例,一起来看一下。

webpack4 released 已经有一段时间了,插件系统趋于平稳,适逢对webpack3的打包速度很不满意,因此决定将当前在做的项目进行升级,正好也实践一下webpack4。

新特性

0配置

应该是parcel出来以后,webpack团队意识到其配置确实有点复杂,不太容易上手。so, webapck4 开始支持0配置启动。不过,万变不离其宗,webpack4的0配置也只是支持了默认entry 和 output而已,即默认entry为./src,默认output为/dist。

模式选择mode

mode有两个可选项,production & development。作为必选项,mode是不可缺省的。在production模式下,会默认做一些必要的优化,如代码压缩和作用域提升,还会默认指定process.env.NODE_ENV 为 production。在development模式下,优化了增量构建,支持注释和提示,并且支持 eval 下的 source maps,同时默认指定process.env.NODE_ENV 为 development。

sideEffects

通过该配置可以大幅度减小打包体积。当模块的 package.json 配置sideEffects:false表明该模块没有副作用,也就意味着 webpack 可以安全地清除被用于重复导出(re-exports)的代码。

模块类型

webpack4提供了5种模块类型。

json: 可通过 require 和 import 导入的 JSON 格式的数据(默认为 .json 的文件)

webassembly: WebAssembly 模块,(目前是 .wasm 文件的默认类型)

javascript/auto: (webpack 3中的默认类型)支持所有的JS模块系统:CommonJS、AMD。

javascript/esm: EcmaScript模块(默认 .mjs 文件)。

javascript/dynamic: 仅支持 CommonJS & AMD。

JSON

webpack 4 不仅支持本地处理 JSON,还支持对 JSON 的 Tree Shaking。当使用 ESM 语法 import json 时,webpack 会消除掉JSON Module 中未使用的导出。此外,如果要用 loader 转换 json 为 js,需要设置 type 为 javascript/auto。

optimization

Webpack 4 删除了 CommonsChunkPlugin,并默认启用了它的许多功能。因此webpack4可以实现很好的默认优化。但是,对于那些需要自定义的缓存策略,增加了 optimization.splitChunks 和 optimization.runtimeChunk。具体解释可参考这篇文章,解释得很详细。RIP CommonsChunkPlugin点击预览

手把手升级

我是把原来vue cli的项目做了一下升级,总体来说,升级还算是比较顺利步骤,这里我们分成两步走,首先升级相关依赖的插件,然后优化webapck配置文件。

升级插件

首先要把下面列表的插件升级到对应版本或者最新版本

webpack@4.4.1
css-loader@0.28.10,
extract-text-webpack-plugin@4.0.0-beta.0,
file-loader@1.1.11,
html-webpack-plugin@3.1.0,
optimize-css-assets-webpack-plugin@4.0.0,
url-loader@1.0.1,
vue-loader@14.2.2,
vue-style-loader@4.1.0,
vue-template-compiler@2.5.16,
webpack-bundle-analyzer@2.11.1,
webpack-dev-middleware@3.1.0,
webpack-dev-server@3.1.1,
webpack-hot-middleware@2.21.2

如果遇到其他包报错,应该是升级到最新的就可以解决了。

更新配置文件

webpack.dev.conf.js

dev环境变化不大,毕竟webpack4很大一部分的优化都是针对生产环境的,该文件我们只需要删除一些不再需要的插件既可以。例如:webpack.NamedModulesPlugin、webpack.NoEmitOnErrorsPlugin,其功能webpack4已经默认配置。同时,要设置

mode: ‘development’
webpack.production.conf.js

webvpack4中改动最大,影响也最大的就是webpack4使用optimization.splitChunks替代了CommonsChunkPlugin。以前的CommonsChunkPlugin主要用来抽取代码中的共用部分,webpack runtime之类的代码,结合chunkhash,实现最好的缓存策略。而optimization.splitChunks则实现了相同的功能,并且配置更加灵活,具体解释可参考这篇文章,解释得很详细。

mode: 'production',optimization: {splitChunks: {cacheGroups: {vendors: {test: /[\/]node_modules[\/]/,chunks: 'initial',name: 'vendors',},'async-vendors': {test: /[\/]node_modules[\/]/,minChunks: 2,chunks: 'async',name: 'async-vendors'}}},runtimeChunk: { name: 'runtime' }}

登录后复制

相信看了本文案例你已经掌握了方法,更多精彩请关注【创想鸟】其它相关文章!

推荐阅读:

使用mint-ui在手机端做出三级联动

使用mint-ui在手机端做出三级联动

以上就是vue cli+webapck4需要哪些步奏的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/3185586.html

(0)
上一篇 2025年3月31日 22:30:19
下一篇 2025年3月8日 23:35:14

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 怎样使用vue做出单页应用前端路由

    这次给大家带来怎样使用vue做出单页应用前端路由,使用vue做出单页应用前端路由的注意事项有哪些,下面就是实战案例,一起来看一下。 写在前面:通常 SPA 中前端路由有2种实现方式: window.history location.hash…

    编程技术 2025年3月31日
    000
  • 在项目中如何使用Vue filter

    这次给大家带来在项目中如何使用Vue filter,在项目中使用Vue filter的注意事项有哪些,下面就是实战案例,一起来看一下。 Vue filter介绍及其使用 VueJs 提供了强大的过滤器API,能够对数据进行各种过滤处理,返回…

    2025年3月31日 编程技术
    100
  • Vue项目内应用第三方验证码

    这次给大家带来Vue项目内应用第三方验证码,的注意事项有哪些,下面就是实战案例,一起来看一下。 什么是腾讯验证码?它长这个样子……:point_down:   最近公司项目要求引入腾讯云验证,要求是这样的: 为了防止别人恶意刷短信验证码,当…

    2025年3月31日 编程技术
    100
  • 优化vue-router懒加载

    这次给大家带来优化vue-router懒加载,的注意事项有哪些,下面就是实战案例,一起来看一下。 用过vue-router都知道它可以实现模块js的懒加载,即只有当需要时才去加载对应模块的js脚本文件,以加速主页的显示。比如只有第一次用户点…

    编程技术 2025年3月31日
    100
  • 如何在项目中使用vue+slot插口

    这次给大家带来如何在项目中使用vue+slot插口,在项目中使用vue+slot插口的注意事项有哪些,下面就是实战案例,一起来看一下。 子组件 <!—-> {{item.text}} export default{ data…

    2025年3月31日 编程技术
    100
  • 在vue中如何修改a标签样式?

    这篇文章主要介绍了vue 动态修改a标签的样式的方法,现在分享给大家,也给大家做个参考。 公司要做一个类似今日头条的项目,用前后端分离的方式做成HTML5页面,先在微信中运行,领导说想看看效果怎么样。今日头条头部的导航是可以滚动和添加类别的…

    2025年3月31日
    100
  • 实战项目中使用Vue内slots/scoped slots

    这次给大家带来实战项目中使用Vue内slots/scoped slots,实战项目中使用Vue内slots/scoped slots的注意事项有哪些,下面就是实战案例,一起来看一下。 一直对Vue中的slot插槽比较感兴趣,下面是自己的一些…

    编程技术 2025年3月31日
    100
  • 使用vue-meta如何管理头部标签

    这篇文章主要介绍了详解vue-meta如何让你更优雅的管理头部标签,现在分享给大家,也给大家做个参考。 在 Vue SPA 应用中,如果想要修改HTML的头部标签,或许,你会在代码里,直接这么做: // 改下titledocument.ti…

    2025年3月31日
    100
  • FileReader API的使用

    这次给大家带来FileReader API的使用,FileReader API使用的注意事项有哪些,下面就是实战案例,一起来看一下。 有时候我们需要从文件中读取数据。在以前,你需要将其发送到服务器,然后返回所需的数据。问题是,现在我们还可以…

    2025年3月31日 编程技术
    100
  • 在vue-scroller中如何标记记录滚动位置

    本篇文章主要介绍了vue-scroller记录滚动位置的示例代码,现在分享给大家,也给大家做个参考。 问题描述: 列表页进入详情页,或者tab页切换,然后再返回列表页,希望能切换到之前滚动位置 解决问题思路: 切换到其他页面前记录位置,返回…

    编程技术 2025年3月31日
    100

发表回复

登录后才能评论