Rspack 创建 vue2/3 项目接入 antdv(rspack.config.js 配置 less 主题)

简介: Rspack 创建 vue2/3 项目接入 antdv(rspack.config.js 配置 less 主题)

一、简介

二、创建 vue 项目

  • 创建项目(文档中还提供了 Rspack 内置 monorepo 框架 Nx 的创建方式,根据需求进行选择)
# npm 方式
$ npm create rspack@latest
# yarn 方式
$ yarn create rspack
# pnpm 方式
$ pnpm create rspack@latest
  • 创建好项目并运行,目前 Rspack 版本支持的工程模版:

    默认创建的 vue 项目为 vue3

  • 如果需要其他版本,或其他框架的基础工程,可到官方提供的 rspack 工程拷贝一个基础工程模版进行使用:

    在拷贝出来的基础工程找到 package.json 中的 @rspack/cli,将它改为指定版本,或看当前下载的 rspack 是属于什么版本的,也可以直接改成使用最新版本:
# 默认的
"@rspack/cli": "workspace:*",
# 改成最新版本
"@rspack/cli": "latest",
  • 执行 $ npm i 安装依赖就可以进行开发了。

三、接入 antdv@4.x

$ npm i --save ant-design-vue@4.x
  • main.js
...
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/reset.css';
createApp(App).use(Antd).mount("#app");
  • App.vue
<template>
   <a-button type="primary" ghost>Primary1</a-button>
   <a-config-provider
     :theme="{
       token: {
         colorPrimary: '#00b96b'
       }
     }"
   >
     <a-button type="primary" ghost>Primary2</a-button>
   </a-config-provider>
   <a-button type="primary" ghost>Primary3</a-button>
</template>

四、接入 antdv@1.7.8 老版本(并通过 rspack.config.js 配置主题)

  • 通过上面创建 vue2 项目,并修改好 @rspack/cli 版本,执行:
# 安装依赖
$ npm i
  • 安装 antdv
$ npm i ant-design-vue@1.7.8
  • main.js
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
// import 'ant-design-vue/dist/antd.less';
Vue.config.productionTip = false;
Vue.use(Antd);
  • App.vue
<template>
  <div class="container">
    <a-button type="primary">Primary</a-button>
  </div> 
</template>
  • 运行项目
$ npm run dev
  • 配置主题 main.js
import Antd from 'ant-design-vue';
// import 'ant-design-vue/dist/antd.css';
// 使用 less 展示方式
import 'ant-design-vue/dist/antd.less';
Vue.config.productionTip = false;
Vue.use(Antd);
  • 可能会报错:
error[internal]: Napi Error: GenericFailure - 
// https://github.com/ant-design/ant-motion/issues/44
.bezierEasingMixin();
  • 解决方案:
    方案一:【推荐】找到 rspack.config.js 中的 module,里面使用了 less-loader,对它进行调整:
....
{
        test: /\.less$/,
        use: ["vue-style-loader", "css-loader", "less-loader"],
        type: "javascript/auto"
},
...
  • 将上面的配置方式,按下面的调整,就解决报错了
...
{
        test: /\.less$/,
        use: ["vue-style-loader", "css-loader", {
                loader: "less-loader",
                options: {
                        lessOptions: {
                                javascriptEnabled: true
                        }
                }
        }],
        type: "javascript/auto"
},
...
  • 方案二:打开项目 package.json,将 less 版本降到 3.0 以下,例如 2.7.3 版本。
  • 接着可能会报错
error[internal]: Napi Error: GenericFailure - 
    position: absolute;
    top: 8px + @font-size-base * @line-height-base / 2 - @font-size-base / 2;
  • 原因:less 在第 7 版本改变了原有的除法运算,所以无法识别
    解决办法:
# 移除高版本less-laoder
$ npm uni less-loader
# 指定安装 less-loader 6 版本
$ npm i less-loader@6 -D
  • 解决之后,就能正常运行项目了。
  • rspack.config.js 中添加一个主题色,保存重新运行,主题色生效。
...
{
        test: /\.less$/,
        use: ["vue-style-loader", "css-loader", {
                loader: "less-loader",
                options: {
                        modifyVars: {
                                'primary-color': '#1DA57A'
                        },
                        lessOptions: {
                                javascriptEnabled: true
                        }
                }
        }],
        type: "javascript/auto"
},
...
  • 在配置路由页面的时候,记得都带好后缀,之前 import 组件、页面地址的时候一般不带后缀,但是在这里需要带上,除非自己能修改 rspack.config.js,不会修改又不带上后缀会报错:
    @.. 方式都不行,其实就是缺少了 .vue 后缀,必须要带上。
error[internal]: Resolve error
   ┌─ src/router/index.js:10:40
 6 │     {
 7 │       path: '/home',
 8 │       name: 'home',
 9 │       // component: () => import('@/views/home/Home'),
10 │       component: () => import('../views/home/Home'),
   │ ╭────────────────────────────────────────^
11 │ │     // component: Home,
   │ ╰────────────────^ Failed to resolve ../views/home/Home in /Users/dengzemiao/Desktop/Project/rspack/test/src/router/index.js
12 │       meta: { title: '首页', keepAlive: false, icon: 'idcard' }
13 │     }
14 │   ]
  • 提示:vue-router 需要单独安装,rspack 提供的基础库好像并不自带,可以查看下 package.json 确定下。
import Vue from 'vue'
import Router from 'vue-router'
import Home from '../views/home/Home.vue'
export const routes = [
  {
    path: '/home',
    name: 'home',
    // component: () => import('@/views/home/Home.vue'),
    // component: () => import('../views/home/Home.vue'),
    component: Home,
    meta: { title: '首页' }
  }
]
Vue.use(Router)
export default new Router({
  mode: 'history',
  scrollBehavior: () => ({ y: 0 }),
  routes
})
  • 更多 rspack.config.js 配置可以查看官方文档
相关文章
|
1月前
|
JavaScript 前端开发 开发者
VUE 开发——Node.js学习(一)
VUE 开发——Node.js学习(一)
61 3
|
15天前
|
JavaScript 前端开发 开发者
如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤
随着前端开发技术的快速发展,代码规范和格式化工具变得尤为重要。本文介绍了如何在 Visual Studio Code (VSCode) 中使用 ESLint 和 Prettier 检查代码规范并自动格式化 Vue.js 代码,包括安装插件、配置 ESLint 和 Prettier 以及 VSCode 设置的具体步骤。通过这些工具,可以显著提升编码效率和代码质量。
162 4
|
18天前
|
JavaScript 前端开发 持续交付
构建现代Web应用:Vue.js与Node.js的完美结合
【10月更文挑战第22天】随着互联网技术的快速发展,Web应用已经成为了人们日常生活和工作的重要组成部分。前端技术和后端技术的不断创新,为Web应用的构建提供了更多可能。在本篇文章中,我们将探讨Vue.js和Node.js这两大热门技术如何完美结合,构建现代Web应用。
18 4
|
22天前
|
JavaScript 测试技术 API
跟随通义灵码一步步升级vue2(js)项目到vue3版本
Vue 3 相较于 Vue 2 在性能、特性和开发体验上都有显著提升。本文介绍了如何利用通义灵码逐步将 Vue 2 项目升级到 Vue 3,包括备份项目、了解新特性、选择升级方式、升级依赖、迁移组件和全局 API、调整测试代码等步骤,并提供了注意事项和常见问题的解决方案。
|
2月前
|
算法 JavaScript 前端开发
第一个算法项目 | JS实现并查集迷宫算法Demo学习
本文是关于使用JavaScript实现并查集迷宫算法的中国象棋demo的学习记录,包括项目运行方法、知识点梳理、代码赏析以及相关CSS样式表文件的介绍。
第一个算法项目 | JS实现并查集迷宫算法Demo学习
|
25天前
|
JavaScript 前端开发 测试技术
JavaScript与TypeScript:为何TypeScript成为大型项目的首选
JavaScript与TypeScript:为何TypeScript成为大型项目的首选
28 1
|
26天前
|
人工智能 JavaScript 网络安全
ToB项目身份认证AD集成(三完):利用ldap.js实现与windows AD对接实现用户搜索、认证、密码修改等功能 - 以及针对中文转义问题的补丁方法
本文详细介绍了如何使用 `ldapjs` 库在 Node.js 中实现与 Windows AD 的交互,包括用户搜索、身份验证、密码修改和重置等功能。通过创建 `LdapService` 类,提供了与 AD 服务器通信的完整解决方案,同时解决了中文字段在 LDAP 操作中被转义的问题。
|
2月前
vite.config.js中vite.defineConfig is not defined以及创建最新版本的vite项目
本文讨论了在配置Vite项目时遇到的`vite.defineConfig is not defined`错误,这通常是由于缺少必要的导入语句导致的。文章还涉及了如何创建最新版本的Vite项目以及如何处理`configEnv is not defined`的问题。
100 3
vite.config.js中vite.defineConfig is not defined以及创建最新版本的vite项目
|
2月前
|
JavaScript 前端开发 API
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
Vue学习笔记3:对比纯JavaScript和Vue实现数据更新的实时视图显示
|
28天前
|
JavaScript 前端开发 应用服务中间件
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
vue前端开发中,通过vue.config.js配置和nginx配置,实现多个入口文件的实现方法
129 0

热门文章

最新文章

  • 1
    Spring Boot与Spring Cloud Config的集成
    211
  • 2
    若依修改标题和icon,在vue.config.js和.env.development进行修改
    310
  • 3
    若依修改,若依的com.ruoyi.framework.config在那?搜索文件使用ctrl+shift+f不用搜狗输入法,其他輸入法,用英文
    43
  • 4
    若依修改,若依部署在本地运行时的注意事项,后端连接了服务器,本地的vue.config.js要先改成localhost:端口号与后端匹配,部署的时候再改公网IP:端口号
    152
  • 5
    部署常用的流程,可以用后端,连接宝塔,将IP地址修改好,本地只要连接好了,在本地上前后端跑起来,前端能够跑起来,改好了config.js资料,后端修改好数据库和连接redis,本地上跑成功了,再改
    70
  • 6
    若依修改---重新部署项目注意事项,新文件初始化需要修改的地方,打包后的文件很难进行修改,如果想要不断修改项目,注意保存原项目,才可以不断修改,前端:在Vue.config.js文件中修改target
    126
  • 7
    若依修改之后,无法访问前端项目如何解决,只能访问后端的接口,我的接口8083,端不显示咋解决?在vue.config.js文件中的映射路径要跟后端匹配,到软件商店里找到Ngnix配置代理,设80不用加
    601
  • 8
    文本vitepress,如何设置背景图,如何插入背景图,如何插入logo,为了放背景图片,我们要新建pubilc的文件夹,插入logo要在config.js中进行配置,注意细节,在添加背景时,注意格式
    135
  • 9
    文本,vitepress的使用,如何使用vitevitepress没有config.js该怎么办?这里使用vitepress进行手动配置,参考只爭朝夕不負韶華的文章
    64
  • 10
    vue 配置【详解】 vue.config.js ( 含 webpack 配置 )
    65