当前位置: 首页 > news >正文

《实战:如何搭建一个完整的 Vue2.0 项目》- 7、Vue2.x 项目 webpack 4 升级 5(半自动升级)

1.自动升级

先全局安装升级插件

npm i npm-check npm-check-updates -g

检查依赖

npm-check

更新检查后的依赖并展示版本号,此时 package.json还没有更新

npm-check-updates

在这里插入图片描述

升级 package.json,下图显示更新版本,此时 package.json文件已变更。但我们是更新webpack,vue还是使用v2,先手动改回原来的版本号。

ncu -u

在这里插入图片描述

package.json中删除无用插件

"cache-loader": "4.1.0",

清理缓存和依赖,非常有必要,避免冗余插件,且会报奇怪的错误。或直接删除 node_modules 文件夹;

npm cache clean --force
npm install --legacy-peer-deps

删除原有 package-lock.json,安装依赖

npm install

2.解决系统启动时报错

Error: Cannot call .tap() on a plugin that has not yet been defined. Call plugin(‘preload’).use() first

解决:vue.config.js 中删除如下代码,暂无配置需要

config.plugin('preload').tap(() => [{rel: 'preload',fileBlacklist: [/\.map$/, /hot-update\.js$/, /runtime\..*\.js$/],include: 'initial'}
])config.plugin('ScriptExtHtmlWebpackPlugin').after('html').use('script-ext-html-webpack-plugin', [{// `runtime` must same as runtimeChunk name. default is `runtime`inline: /runtime\..*\.js$/}]).end()

webpack < 5 used to include polyfills for node.js core modules by default.

解决:安装 npm install path-browserifyvue.config.js 中配置

module.exports = {,configureWebpack: {resolve: {fallback: { path: require.resolve("path-browserify") },}}
}

Invalid options object. Dev Server has been initialized using an options object that does not match the API schema.

解决:再嵌套一层,overlay 放在 client

// 错误
module.exports = {devServer: {overlay: {warnings: false,errors: true},}
}
// 正确 要套在 client 属性下
module.exports = {devServer: {client: {// https://webpack.docschina.org/configuration/dev-server/#overlayoverlay:false,//禁止:当出现编译错误或警告时,在浏览器中显示全屏覆盖}}     
}

export ‘default’ (imported as ‘pathToRegexp’) was not found in ‘path-to-regexp’

解决:从 v2.4.0 升级到 v6.2.1,要做如下调整。文件src\components\admin\Breadcrumb\index.vue

报错
import pathToRegexp from 'path-to-regexp'
正确
import * as pathToRegexp from 'path-to-regexp'

PostCSS Loader has been initialized using an options object that does not match the API schema

解决:再嵌套一层,plugins 放在 postcssOptions

//报错,适合 webpack 4-
css: {loaderOptions: {postcss: {plugins: [require('postcss-pxtorem')({ // 把px单位换算成rem单位rootValue: 16, // 16px = 1remunitPrecision: 5,propList: ['*'],replace: true,mediaQuery: false,minPixelValue: 0})]}}
}
// 正确:需要再嵌套一层 postcssOptions
css: {loaderOptions: {postcss: {postcssOptions: {plugins: [require('postcss-pxtorem')({ // 把px单位换算成rem单位rootValue: 16, // 16px = 1remunitPrecision: 5,propList: ['*'],replace: true,mediaQuery: false,minPixelValue: 0})]}}}
}

3.解决系统启动后报错

CSS 中 background: url(…) 图片路径错误

解决:貌似无法使用相对路径,要使用绝对路径。如果图片在 public/images

// 报错:暂不理解为啥 webpack5 不可行,或是有其它配置未更新
background: url('/images/tools/bg-selected.png');
// 正确
background: url('../../../../public/images/tools/bg-selected.png');
// 正确(推荐):或把图片放 src/assets/images 下。避免多层级嵌套
background: url('@/assets/images/tools/bg-selected.png');

后台管理系统 sass 变量 export 失败

解决:文件 src\layout\components\Sidebar\index.vue 。参考 VueCLI CSS Modules,Vite 也有类似说明,参考 Vite CSS Modules

// 错误:导出对象为空
import variables from '@/styles/variables.scss'
// 正确:新增前缀.module,被认为是一个CSS模块文件,导入时会返回一个相应的模块对象
import variables from '@/styles/variables.module.scss'

相关文章:

《实战:如何搭建一个完整的 Vue2.0 项目》- 7、Vue2.x 项目 webpack 4 升级 5(半自动升级)

1.自动升级 先全局安装升级插件 npm i npm-check npm-check-updates -g检查依赖 npm-check更新检查后的依赖并展示版本号&#xff0c;此时 package.json还没有更新 npm-check-updates升级 package.json&#xff0c;下图显示更新版本&#xff0c;此时 package.json文件已变更…...

Python教程---Python基础语法2

1.变量和字面量(常量) 字面量就是一个一个的值,比如:1,2,3,4,5,6,‘HELLO’ 字面量所表示的意思就是它的字面的值,在程序中可以直接使用字面量 变量(variable)变量可以用来保存字面量,并且变量中保存的字面量是不定的变量本身没有任何意思,它会根据不同的字面量…...

Conda创建软件安装环境

Conda 安装软件并创建环境 Python创建虚拟环境 conda create -n env_name python3.11 进入创建的虚拟环境 conda activate env_name 安装软件 conda install -c bioconda software_name...

MySQL | MySQL 为什么不推荐使用JOIN

MySQL 为什么不推荐使用JOIN MySQL 不推荐使用 JOIN 的说法是过于简化的。实际上&#xff0c;在某些情况下使用 JOIN 是非常有用的&#xff0c;但在其他情况下可能会带来性能问题、复杂性和可维护性问题以及重复数据等问题。 首先我们需要知道JOIN语句是用于将多个表中的数据…...

[LeetCode] 1.两数之和

一、题目描述 给定一个整数数组 nums 和一个目标值 target&#xff0c;请你在该数组中找出和为目标值 target的那两个整数&#xff0c;并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是&#xff0c;数组中同一个元素不能使用两遍。 你可以按任意顺序返回答…...

ruby语言怎么写个通用爬虫程序?

Ruby语言爬虫是指使用Ruby编写的网络爬虫程序&#xff0c;用于自动化地从互联网上获取数据。其中&#xff0c;CRawler是一个基于文本的小型地牢爬虫&#xff0c;它被设计为可扩展&#xff0c;所有游戏数据均通过JSON文件提供&#xff0c;程序仅处理游戏引擎。除此之外&#xff…...

7 交换机与VLAN

1、拓扑结构是怎么形成的&#xff1f; 举例&#xff1a;办公楼里的每一个楼层可能会有几百台机器&#xff0c;显然需要N个交换机。 交换机之间连接起来&#xff0c;就形成一个稍微复杂的拓扑结构2、两台交换机的情形 1.两台交换机连接着三个局域网&#xff0c;每个局域网上都…...

C++指针笔记

一.定义 是什么&#xff1f; 指针就是地址&#xff0c;相当于门牌号。通过 0x0000也可以拿到该地址里的数据&#xff0c; 可是如果每创建一个变量都要去记住地址编号不太方便我们使用数据&#xff0c;所以才有变量。作用&#xff1f; 通过指针(地址)间接访问内存。内存的编号…...

vue中app.use()做了什么

为什么要app.use(参数) 注册组件&#xff0c;且注册的组件全局可用&#xff0c;或在vue原型上添加内容。 use参数需要什么类型的&#xff1f;vue规定&#xff1a;参数要么是对象形式&#xff0c;且必须有install这个方法属性&#xff0c;或者参数为函数。 另外&#xff1a;注…...

【网安AIGC专题11.1】论文12:理解和解释代码,GPT-3大型语言模型学生创建的代码解释比较+错误代码的解释(是否可以发现并改正)

Comparing Code Explanations Created by Students and Large Language Models 写在最前面总结思考 背景介绍编程教育—代码理解和解释技能培养编程教育—解决方案研究问题研究结果 相关工作Code ComprehensionPedagogical Benifis of code explanationLarge Language Models i…...

【GEE】4、 Google 地球引擎中的数据导入和导出

1简介 在本模块中&#xff0c;我们将讨论以下概念&#xff1a; 如何将您自己的数据集引入 GEE。如何将来自遥感数据的值与您自己的数据相关联。如何从 GEE 导出特征。 2背景 了解动物对环境的反应对于了解如何管理这些物种至关重要。虽然动物被迫做出选择以满足其基本需求&am…...

【C++】特殊类设计+类型转换+IO流

&#x1f307;个人主页&#xff1a;平凡的小苏 &#x1f4da;学习格言&#xff1a;命运给你一个低的起点&#xff0c;是想看你精彩的翻盘&#xff0c;而不是让你自甘堕落&#xff0c;脚下的路虽然难走&#xff0c;但我还能走&#xff0c;比起向阳而生&#xff0c;我更想尝试逆风…...

JAVA整理学习实例(一)面向对象

JAVA整理学习实例&#xff08;一&#xff09;面向对象 注&#xff1a;整理一下之前写的东西&#xff0c;然后在修修补补&#xff0c;水平有限&#xff0c;有错误的请指正。 前言 基础部分的面试大部份是理论和一些语法细节&#xff0c;如果平时没有关注&#xff0c;在面试或者做…...

QT 实现解密m3u8文件

文章目录 概要如何解密M3U8文件呢实现思路和代码序列图网络请求解密 结论 概要 视频文件很多已M3U8文件格式来提供&#xff0c;先复习下什么是M3U8文件&#xff01;用QT的 mutimedia框架来播放视频时&#xff0c;有的视频加载慢&#xff0c;有的视频加载快&#xff0c;为啥&am…...

论文阅读—— BiFormer(cvpr2023)

论文&#xff1a;https://arxiv.org/abs/2303.08810 github&#xff1a;GitHub - rayleizhu/BiFormer: [CVPR 2023] Official code release of our paper "BiFormer: Vision Transformer with Bi-Level Routing Attention" 一、介绍 1、要解决的问题&#xff1a;t…...

理解 fopen的 rwa r+w+a+ 参数含义

tags: C categories: C 理解 一图胜千言 我愿称之为最强 c - Difference between r and w in fopen() - Stack Overflow; 需要注意里面的a和 a, 区别在于 a 不可以读而 a可以读. c - Difference between r and w in fopen() - Stack Overflow; ModeReadWriteCreate New Fil…...

【强化学习】17 ——DDPG(Deep Deterministic Policy Gradient)

文章目录 前言DDPG特点 随机策略与确定性策略DDPG&#xff1a;深度确定性策略梯度伪代码代码实践 前言 之前的章节介绍了基于策略梯度的算法 REINFORCE、Actor-Critic 以及两个改进算法——TRPO 和 PPO。这类算法有一个共同的特点&#xff1a;它们都是在线策略算法&#xff0c…...

驱动开发11-2 编写SPI驱动程序-点亮数码管

驱动程序 #include <linux/init.h> #include <linux/module.h> #include <linux/spi/spi.h>int m74hc595_probe(struct spi_device *spi) {printk("%s:%d\n",__FILE__,__LINE__);char buf[]{0XF,0X6D};spi_write(spi,buf,sizeof(buf));return 0; …...

Java使用pdfbox进行pdf和图片之间的转换

简介 pdfbox是Apache开源的一个项目,支持pdf文档操作功能。 官网地址: Apache PDFBox | A Java PDF Library 支持的功能如下图.引入依赖 <dependency><groupId>org.apache.pdfbox</groupId><artifactId>pdfbox-app</artifactId><version>…...

机器学习中的关键组件

机器学习中的关键组件 数据 每个数据集由一个个样本组成&#xff0c;大多时候&#xff0c;它们遵循独立同分布。样本有时也叫作数据点或数据实例&#xff0c;通常每个样本由一组称为特征或协变量的属性组成。机器学习会根据这些属性进行预测&#xff0c;预测得到的称为标签或…...

灵感画廊实际作品:基于‘纪实瞬间’预设的城市街景写实图像生成

灵感画廊实际作品&#xff1a;基于‘纪实瞬间’预设的城市街景写实图像生成 “见微知著&#xff0c;凝光成影。将梦境的碎片&#xff0c;凝结为永恒的视觉诗篇。” 今天&#xff0c;我们不谈复杂的参数&#xff0c;也不讲枯燥的部署。我想带你走进一个特别的创作空间——灵感画…...

别只盯着server.log了!Kafka Controller日志与GC日志里的“宝藏”与“陷阱”

别只盯着server.log了&#xff01;Kafka Controller日志与GC日志里的“宝藏”与“陷阱” 当Kafka集群出现Leader选举异常、副本同步缓慢或频繁Full GC时&#xff0c;大多数工程师的第一反应是打开server.log翻找线索。但真正的高手会告诉你&#xff1a;controller.log和GC日志才…...

Scalatra 异步编程完整指南:构建高性能 Web 服务

Scalatra 异步编程完整指南&#xff1a;构建高性能 Web 服务 【免费下载链接】scalatra Tiny Scala high-performance, async web framework, inspired by Sinatra 项目地址: https://gitcode.com/gh_mirrors/sc/scalatra Scalatra 是一个轻量级、高性能的 Scala Web 微…...

CVPR2025新思路:把对抗扰动本身当成‘训练数据’,聊聊PSP-UAP背后的设计哲学

CVPR2025新思路&#xff1a;对抗扰动作为训练数据的革命性设计哲学 对抗样本研究领域正在经历一场范式转变——从单纯制造攻击工具到重新思考扰动本身的语义价值。PSP-UAP&#xff08;Pseudo-Semantic Prior Universal Adversarial Perturbation&#xff09;的突破性在于&#…...

大学生福音!免费源码网搞定毕设:会员源码网深度解析

在大学的象牙塔里&#xff0c;毕业设计是每个计算机相关专业学生都要跨越的一道坎。从选题到实现&#xff0c;每一步都充满挑战&#xff0c;尤其是对于编程经验尚浅的同学来说&#xff0c;从零开始构建一个完整的系统更是难上加难。今天&#xff0c;就为大家介绍一个能让毕设之…...

FanControl终极指南:3步打造电脑风扇智能控制系统

FanControl终极指南&#xff1a;3步打造电脑风扇智能控制系统 【免费下载链接】FanControl.Releases This is the release repository for Fan Control, a highly customizable fan controlling software for Windows. 项目地址: https://gitcode.com/GitHub_Trending/fa/Fan…...

机器学习实践指南【1.0】

第1章 机器学习引言本章将介绍机器学习及其涵盖的多个话题。你将了解以下内容&#xff1a;什么是机器学习分类方法概述聚类方法概述模型的选择和正则化概述非线性方法概述监督学习概述无监督学习概述增强学习概述结构化预测概述神经网络概述深度学习概述1.1 什么是机器学习人类…...

随堂笔记0403

负载监控计算机核心资源&#xff1a;CPU&#xff1a; 计算&#xff08;lscpu&#xff09;内存&#xff1a; 缓存数据&#xff08;掉电丢失&#xff09;硬盘&#xff1a; 持久化存储数据网络&#xff1a; 传播数据[rootCentos01 wyj]# lscpuCPU(s): 2型号名称&am…...

马斯克最新对话:AI 毁灭人类的概率有 20%,但它将创造一个没有钱的“全民高收入”时代

“我宁愿看到结局&#xff0c;也不愿无聊老去。”编译 | 王启隆来源 | youtu.be/N5KCm_55xeQ出品丨AI 科技大本营&#xff08;ID&#xff1a;rgznai100&#xff09;在此前结束的 2026 Abundance Summit 上&#xff0c;X奖基金会创始人彼得戴曼迪斯&#xff08;Peter Diamandis&…...

嵌入式环形缓冲区LwRB:高效数据流管理实践

1. 环形缓冲区&#xff1a;嵌入式数据流管理的基石在嵌入式系统开发中&#xff0c;数据流管理是个永恒的话题。想象一下这样的场景&#xff1a;你的物联网设备每秒接收数百个传感器数据包&#xff0c;串口不断涌入数据&#xff0c;而处理器需要有条不紊地处理这些信息。传统线性…...