iis服务器助手广告
返回顶部
首页 > 资讯 > 前端开发 > html >Vue cli如何生成Vue项目的webpack4升级
  • 745
分享到

Vue cli如何生成Vue项目的webpack4升级

2024-04-02 19:04:59 745人浏览 独家记忆
摘要

小编给大家分享一下Vue cli如何生成Vue项目的webpack4升级,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!概述相比于

小编给大家分享一下Vue cli如何生成Vue项目webpack4升级,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

概述

相比于WEBpack3,webpack4可以零配置运行,打包速度比之前提高了90%,可以直接到es6的代码进行无用代码剔除,新增的optimization使用简单

在未来,CSShtml和文件都会成为原生模块

【0配置】

webpack4 设置了默认值,以便无配置启动项目

  1. entry 默认值是 ./src/

  2. output.path 默认值是 ./dist

  3. mode 默认值是 production

【模块类型】

webpack4提供了5种模块类型

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

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

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

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

  5. javascript/dynamic: 仅支持 CommonJS & AMD。

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

模式mode

相比于webpack3,webpack4新增了一个mode配置选择,用来表示配置模式的选择情况

module.exports = {
 mode: 'production'
}

包括生产环境production、开发环境devolopment和自定义none这三个选择可选

【开发模式】

  1. 浏览器调试工具

  2. 注释、开发阶段的详细错误日志和提示

  3. 快速和优化的增量构建机制

  4. 开启 output.pathinfo 在 bundle 中显示模块信息

  5. 开启 NamedModulesPlugin

  6. 开启 NoEmitOnErrorsPlugin

【生产模式】

  1. 启用所有优化代码的功能

  2. 更小的bundle大小

  3. 去除只在开发阶段运行的代码

  4. 关闭内存缓存

  5. Scope hoisting 和 Tree-shaking

  6. 开启 NoEmitOnErrorsPlugin

  7. 开启 ModuleConcatenationPlugin

  8. 开启 optimization.minimize

【none】

禁用所有的默认设置

optimization

从webpack4开始官方移除了commonchunk插件,改用了optimization属性进行更加灵活的配置,下面来介绍optimization下的一些常用配置项

【minimize】

利用unglifyjsWebpackPlugin插件来压缩模块,生产环境下该值默认为true

optimization: {
  minimize: false
 }

【minimier】

可以使用其他插件来执行压缩功能

const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

module.exports = {
 //...
 optimization: {
  minimizer: [
   new UglifyJsPlugin({  })
  ]
 }
};

【splitChunks】

webpack4默认使用splitChunksPlugin插件来实现代码分割功能,来替代webpack3中的commonChunksPlugin插件

module.exports = {
 //...
 optimization: {
  splitChunks: {
   chunks: 'async',
   minSize: 30000,
   minChunks: 1,
   maxAsyncRequests: 5,
   maxInitialRequests: 3,
   automaticNameDelimiter: '~',
   name: true,
   cacheGroups: {
    vendors: {
     test: /[\\/]node_modules[\\/]/,
     priority: -10
    },
    default: {
     minChunks: 2,
     priority: -20,
     reuseExistinGChunk: true
    }
   }
  }
 }

【runtimeChunk】

通过设置 runtimeChunk: true 来为每一个入口默认添加一个只包含 runtime 的 chunk

通过提供字符串值,可以使用插件的预设模式

  1. signal: 创建一个被所有生成的块共享的runtime文件

  2. multiple: 为共同的块创建多个runtime文件

缺省值为false,表示每个入口块默认内嵌runtime代码

runtimeChunk {
   name: "runtime"
  }

【noEmitOnErrors】

只要在编译时出现错误,就使用noEmitOnErrors属性来跳过emit 阶段,用来替代 NoEmitOnErrorsPlugin 插件

【nameModules】

使用可读的模块标识,方便更好的调试。webpack在开发模式下默认开启,生产模式下默认关闭,用来替代 NamedModulesPlugin 插件

module.exports = {
 //...
 optimization: {
  namedModules: true
 }
};

升级

下面就基于vue-cli的项目对webpack配置进行升级

1、升级nodejs

使用 webpack4 时,必须保证 node.js 版本 >= 8.9.4,因为 webpack4 使用了大量的ES6语法,这些语法在 nodejs新版 v8 中得到了原生支持

2、升级webpack主要部件,包括webpack、webpack-bundle-analyzer、webpack-dev-server、webpack-merge

升级的操作很简单,先删除,再安装即可。但要注意的是webpack4版本中 cli 工具分离成了 webpack 核心库 与  webpack-cli 命令行工具两个模块,需要使用  CLI ,必安装  webpack-cli 至项目中

cnpm uninstall -D webpack webpack-bundle-analyzer webpack-dev-server webpack-merge
cnpm install -D webpack webpack-cli webpack-bundle-analyzer webpack-dev-server webpack-merge

3、升级webpack相关插件,包括copy-webpack-plugin、css-loader、eslint-loader、file-loader、html-webpack-plugin、url-loader、friendly-errors-webpack-plugin、optimize-css-assets-webpack-plugin、uglifyjs-webpack-plugin

cnpm uninstall -D copy-webpack-plugin css-loader eslint-loader file-loader html-webpack-plugin url-loader friendly-errors-webpack-plugin optimize-css-assets-webpack-plugin uglifyjs-webpack-plugin
cnpm install -D copy-webpack-plugin css-loader eslint-loader file-loader html-webpack-plugin url-loader friendly-errors-webpack-plugin optimize-css-assets-webpack-plugin uglifyjs-webpack-plugin

4、升级vue-loader

由于vue-loader升级到版本15后,配置有较多的变化,稳妥起见,可以只将vue-loader升级到14.4.2

cnpm uninstall -D vue-loader
cnpm uninstall -D vue-loader@14.4.2

5、替换webpack相关插件,extract-text-webpack-plugin替换为mini-css-extract-plugin

cnpm uninstall -D extract-text-webpack-plugin
cnpm install -D mini-css-extract-plugin

配置

下面对配置文件的修改进行详细说明:

1、webpack.base.conf.js文件

增加node:process.env.NODE_ENV即可

module.exports = {
+ mode: process.env.NODE_ENV,
...

2、webpack.prop.conf.js文件

该文件的配置项较为复杂

(1)将ExtractTextPlugin替换为MiniCssExtraPlugin

+ const MiniCssExtractPlugin = require("mini-css-extract-plugin")
- const ExtractTextPlugin = require('extract-text-webpack-plugin')

...
-  new ExtractTextPlugin({
+  new MiniCssExtractPlugin({
   filename: utils.assetsPath('css/[name].[contenthash].css'),
   allChunks: true,
  }),
...

(2)删除UglifyJsPlugin配置项

- const UglifyJsPlugin = require('uglifyjs-webpack-plugin')
...
- new UglifyJsPlugin({
-   uglifyOptions: {
-    compress: {
-     warnings: false
-    }
-   },
-   sourceMap: config.build.productionSourceMap,
-   parallel: true
- })

(3)删除CommonsChunkPlugin配置项

- new webpack.optimize.CommonsChunkPlugin({
-   name: 'vendor',
-   minChunks (module) {
-    return (
-     module.resource &&
-     /\.js$/.test(module.resource) &&
-     module.resource.indexOf(
-      path.join(__dirname, '../node_modules')
-     ) === 0
-    )
-   }
-  }),
-  new webpack.optimize.CommonsChunkPlugin({
-   name: 'manifest',
-   minChunks: Infinity
-  }),
-  new webpack.optimize.CommonsChunkPlugin({
-   name: 'app',
-   async: 'vendor-async',
-   children: true,
-   minChunks: 3
-  }), 
...

(4)添加optimization配置项

+ optimization: {
+  splitChunks: {
+   chunks: 'async',
+   minSize: 30000,
+   minChunks: 1,
+   maxAsyncRequests: 5,
+   maxInitialRequests: 3,
+   automaticNameDelimiter: '~',
+   name: true,
+   cacheGroups: {
+    vendors: {
+     test: /[\\/]node_modules[\\/]/,
+     priority: -10
+    },
+    default: {
+     minChunks: 2,
+     priority: -20,
+     reuseExistingChunk: true
+    }
+   }
+  },
+  runtimeChunk: { name: 'runtime' }
+ },

以上是“Vue cli如何生成Vue项目的webpack4升级”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网html频道!

--结束END--

本文标题: Vue cli如何生成Vue项目的webpack4升级

本文链接: http://www.lsjlt.com/news/75916.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue cli如何生成Vue项目的webpack4升级
    小编给大家分享一下Vue cli如何生成Vue项目的webpack4升级,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!概述相比于...
    99+
    2024-04-02
  • vue cli如何升级webapck4
    这篇文章给大家分享的是有关vue cli如何升级webapck4的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。webpack4 released 已经有一段时间了,插件系统趋于平...
    99+
    2024-04-02
  • Vue如何使用vue-cli创建项目
    这篇文章主要介绍了Vue如何使用vue-cli创建项目,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体如下:vue-cli 是一个官方发布...
    99+
    2024-04-02
  • 如何将项目升级到vue-cli3
    这篇文章将为大家详细讲解有关如何将项目升级到vue-cli3,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一. 原以为升级vue-cli3的路线是这样的:创建vue-cl...
    99+
    2024-04-02
  • 如何用Vue-cli来构建Vue项目
    这篇文章给大家介绍如何用Vue-cli来构建Vue项目,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。首先需要安装Vue-cli:npm install -g vue-cli全局先安装Vue...
    99+
    2023-06-22
  • webpack+vue-cli项目如何打包
    小编给大家分享一下webpack+vue-cli项目如何打包,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1.设置config文...
    99+
    2024-04-02
  • babel7.x和webpack4.x如何配置vue项目
    小编给大家分享一下babel7.x和webpack4.x如何配置vue项目,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!1.webpack 4.x 插件 extract-text-webp...
    99+
    2024-04-02
  • vue-cli+webpack项目如何修改项目名称
    这篇文章主要介绍了vue-cli+webpack项目如何修改项目名称,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。使用vue-cli+web...
    99+
    2024-04-02
  • 如何利用Vue-cli搭建Vue项目框架
    本篇内容介绍了“如何利用Vue-cli搭建Vue项目框架”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!首先安装node.js在新建的目录中按...
    99+
    2023-07-05
  • webpack4如何打包vue前端多页面项目
    这篇文章主要介绍webpack4如何打包vue前端多页面项目,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.用法项目结构如下:project  |- bulid...
    99+
    2024-04-02
  • vue-cli是什么及创建vue-cli项目的方法
    目录1.什么是 vue-cli2.安装 vue-cli3.解决 Windows PowerShell 不识别 vue 命令的问题4.创建项目 vue-cli4.1 基于 vue ui...
    99+
    2023-05-16
    vue-cl创建项目 vue-cl是什么
  • Vue-CLI 3.X如何部署项目至生产服务器
    这篇文章将为大家详细讲解有关Vue-CLI 3.X如何部署项目至生产服务器,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、Nginx服务器文件的配置server&nbs...
    99+
    2024-04-02
  • 如何使用vue-cli脚手架初始化Vue项目下的项目结构
    这篇文章给大家分享的是有关如何使用vue-cli脚手架初始化Vue项目下的项目结构的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。vue-cli是Vue 提供的一个官方命令行工具,...
    99+
    2024-04-02
  • 如何搭建vue-cli中webpack模板项目
    小编给大家分享一下如何搭建vue-cli中webpack模板项目,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1. 安装必要的环...
    99+
    2024-04-02
  • 详解Vue-cli来构建Vue项目的步骤
    首先需要安装Vue-cli: npm install -g vue-cli 全局先安装Vue-cli,安装好了Vue-cli。就可以使用它来构建项目 vue init w...
    99+
    2024-04-02
  • Vue CLI 超级指南:一招制胜项目构建
    Vue CLI 是一个脚手架工具,可帮助您快速启动新的 Vue.js 项目。它提供了各种预配置功能,简化了设置、构建和部署 Vue.js 应用程序的过程。本指南将为您提供一个完整的 Vue CLI 超级指南,帮助您成为项目构建中的专家。 ...
    99+
    2024-03-13
    引言
  • vue-cli npm如何解决vue项目中缺失core-js的问题
    目录vue-cli npm解决vue项目中缺失core-js报错原因解决办法vue踩坑:this dependency was not found问题背景vue-cli npm解决v...
    99+
    2022-11-13
    vue-cli npm vue项目中core-js vue缺失core-js
  • 如何用vue-cli创建项目并webpack打包
    本篇内容介绍了“如何用vue-cli创建项目并webpack打包”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所...
    99+
    2024-04-02
  • Node升级后vue项目node-sass报错如何解决
    这篇文章主要介绍“Node升级后vue项目node-sass报错如何解决”,在日常操作中,相信很多人在Node升级后vue项目node-sass报错如何解决问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Nod...
    99+
    2023-07-05
  • vue cli 3.x项目如何部署到github pages
    这篇文章主要介绍了vue cli 3.x项目如何部署到github pages,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. vue-r...
    99+
    2024-04-02
软考高级职称资格查询
推荐阅读
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作