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

荣县网站开发温州微网站制作公司推荐

荣县网站开发,温州微网站制作公司推荐,小微企业管理软件,山东大学网站设计与建设前言 随着这些年前端技术的飞速发展,几年前的一些老项目在最新的环境下很可能会出现烂掉的情况。如果项目不需要升级,只需要把编译后的文件放在那里跑而不用管的话还好。但是,某一天产品跑过来给你讲要升级某一个功能,你不得不去…

前言

随着这些年前端技术的飞速发展,几年前的一些老项目在最新的环境下很可能会出现烂掉的情况。如果项目不需要升级,只需要把编译后的文件放在那里跑而不用管的话还好。但是,某一天产品跑过来给你讲要升级某一个功能,你不得不去维护的时候,你可能发现,你的工具链都成问题了。

我就遇到了这样的一个情况。一个五六年前基于 webpack + vue2 开发的一个项目,现在需要升级,这个过程一定是很有纪念意义的,所以特地记录下来。

确定实施方案

  1. 用最新的脚手架搭建底层架构。
  2. 将原有代码 src 目录整体移过来。
  3. 针对问题,一一排除

开干。

# 当前环境版本
fungleo@Studio ~/Sites/myWorks/koa-cms-2025
$ node -v
v22.14.0
fungleo@Studio ~/Sites/myWorks/koa-cms-2025
$ pnpm -v
10.4.1

用 vue 官方脚手架构建底层构架

现在官方推荐使用 create-vue 来构建项目,参考文档地址: https://github.com/vuejs/create-vue

根据官方的文档,以及我们项目的实际情况,我们执行命令,如下图所示:

pnpm create vue@legacy

用脚手架创建项目底层
根据提示,我们执行下面的命令,将项目运行起来。

cd koa-cms-user
pnpm install
pnpm dev

运行截图
接下来,我们把原来项目文件的 src 目录完整的替换这个脚手架下生成的 src 目录。

直接运行一下,肯定是跑步起来的。

出错情况

逐一排查问题

OK,全部都是错误,我们来逐一排查,首先我们遇到的依赖的三方库没有安装,这里,我们一一安装上。

我不建议一次性安装,提示哪个,我们就安装哪个。

使用 sass 替代 node-sass

以前,我们的老项目很多都依赖 node-sass 这个库,这里,我们用 sass 进行替代。需要逐一的是 sass 升级更新比较快,导致升级后语法有些更新,所以为了兼容我们之前写的 scss 文件,我建议使用一个稍微老一点的版本,我这里选择的是 1.66.0 这个版本。

pnpm add sass@1.66.0

原有部分引用文件省略 .vue 后缀的,加上

依赖基本安装好之后,发现在控制台中有 404 的报错,经过排查,发现老代码中,有部分引用,省略了 .vue 的文件后缀,补充上之后,解决了这个问题。

// old
import Frame from '@/layout/frame'
// new
import Frame from '@/layout/frame.vue'

部分函数更新

在老项目中,有一些依赖的三方库,可能因为某些原因,不再适用。因此这些业务代码,需要更新调整。我也遇到了这个问题,主要是 RSA 加密部分的内容。这些,我前几天写过一些文章,大家可以参考:

node 后端和浏览器前端,有关 RSA 非对称加密的完整实践, 前后端匹配的代码演示

浏览器原生 Web Crypto API 实现 SHA256 Hash 加密

大家各自的情况应该都不一样,这里不详述了。一般而言,代码量不会太大。

webpack 自定引入文件的代码替换为 vite 的方式

在我原有的项目中,使用了 webpack 的特性写了一些代码,主要是用来自动注册组件,代码如下

// 自动注册组件文件
const modulesFiles = require.context('./', true, /.vue$/)const modules = modulesFiles.keys().reduce((modules, path) => {const module = modulesFiles(path).defaultconst name = module.namemodules[name] = modulereturn modules
}, {})const install = (Vue, opts = {}) => {Object.keys(modules).forEach(name => {Vue.component(name, modules[name])})
}export default {install,...modules
}

现在,需要更换为 vite 特性的代码

// 自动注册组件文件const modulesFiles = import.meta.glob('./**/*.vue', { eager: true })
const modules = Object.entries(modulesFiles).reduce((modules, [_, module]) => {const name = module.default.namemodules[name] = module.defaultreturn modules
}, {})
const install = (Vue, opts = {}) => {Object.keys(modules).forEach((name) => {Vue.component(name, modules[name])})
}export default {install,...modules
}

webpack .env 变量名,替换为 vite .env 变量名

如果你使用到了 .env 文件的变量,这里需要更改前缀,从 VUE_APP_ 更改为 VITE_

此外,在使用的地方也有区别,如下所示:

// 在 webpack 中使用 env 变量
console.log(process.env.VUE_APP_API_URL) 
// 在 vite 中使用 env 变量
console.log(import.meta.env.VITE_API_URL)

OK,我这边经过这些调整,项目已经可以跑起来了。

如果你也有类似的需求,可能会遇到更多不一样的问题,只需要借助搜索引擎和 DeepSeek 我相信都能逐一解决的。

使用 Boime 取代以前的 eslint 实现代码格式化等功能

我觉得在代码格式化方面,现在的 boime 相比以前的 eslint 要更好用一些,主要是配置少,安装的包少,以及速度快。当然,在自定义格式相比较而言要略逊一些,但我感觉可以克服。

目前,我开发的项目,都已经使用 boime 在格式化代码了。这里,我也一样准备使用 boime。

官方网站: https://biomejs.dev/

# 安装
pnpm add @biomejs/biome -D  

在项目根目录创建 biome.json 文件,并录入一下内容:

{"$schema": "https://biomejs.dev/schemas/1.9.4/schema.json","organizeImports": {"enabled": true},"linter": {"enabled": true,"rules": {"recommended": true,"complexity": {"noForEach": "off"},"style": {"noParameterAssign": "off"}}},"formatter": {"enabled": true,"formatWithErrors": false,"indentStyle": "space","indentWidth": 2,"lineWidth": 120},"javascript": {"formatter": {"enabled": true,"indentStyle": "space","indentWidth": 2,"lineWidth": 120,"quoteStyle": "single","semicolons": "asNeeded","trailingCommas": "none"}}
}

package.json 内加上格式化命令脚本 "format": "biome format --write ./src"

"scripts": {"dev": "vite","build": "vite build","preview": "vite preview --port 4173","format": "biome format --write ./src"
},

然后在命令行运行格式化命令

pnpm format

biome 格式化代码

小结

经过轮番混战,终于顺利的把项目从 webpack 更换到了 vite,并且使这个若干年前的古董项目在最新的环境下运行起来了。

如果你也有类似的需求,并且遇到其他问题,欢迎在评论区交流。

最后,如果本文对你有所增益,希望看官您用发财的小手点个小赞哈!

http://www.dtcms.com/a/544182.html

相关文章:

  • 2015年网站设计搭建wordpress用哪种系统
  • 请多记几个本站域名防止失联沈阳网站建设技术公司
  • 网站备案局开发板英文
  • 饰品电子商务网站的建设wordpress添加icon文件夹
  • 谷歌seo技术快优吧seo优化
  • 网站开发去哪里找程序员房地产微信互动营销网站建设
  • 佛山模板网站建站网站设计公司深
  • 小白怎么学做网站yzipi wordpress
  • 如何买网站企业的网站特点
  • 做网站卖流量昆明网站营销
  • 做网站卖东西赚钱么关键词查询的五种常用工具
  • 请简述网站开发的流程图南京玄武区建设局网站
  • 国外网站案例wordpress镶嵌网页
  • 品网站建设公司排名做网站的哪个好
  • 造价统计报表在哪个网站上做办网多少钱
  • 酒店网站案例巩义移动网站建设
  • 深圳哪个网站建设公司好毕业设计在线交流平台
  • 域名网站有哪些wordpress 主题和搭建
  • 金华金东区建设局网站网站页面打开速度慢
  • 网站策划专员所需知识东莞最新招聘信息
  • onedrive 做网站静态o2o商城网站开发
  • 昆山开发区网站制作做网站 框架
  • 网站无法备案建网站不做广告怎么赚钱
  • 东莞市网站建设制作设计平台深圳住房和建设部网站
  • 电子商务网站后台眉山建网站
  • 网站建设哪里去学万网会员
  • 绍兴做网站多少钱河北建设工程招标网官方网站
  • 网站的专业从事网站建设的职业
  • 网站建设过程总结浦江网站建设yw126
  • 百色高端网站建设网站建设的人员预期