【Vue 开发实战】实战篇 # 28:如何自定义Webpack和Babel配置

简介: 【Vue 开发实战】实战篇 # 28:如何自定义Webpack和Babel配置

说明

【Vue 开发实战】学习笔记。



解决 less 配置问题

main.js 文件添加配置

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
import Antd from "ant-design-vue";
// 需要自定义样式主题,这里使用less
import "ant-design-vue/dist/antd.less";
Vue.config.productionTip = false;
Vue.use(Antd);
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");


75fbcdd987944830b1e9493f4a133da0.png

https://github.com/ant-design/ant-motion/issues/44

这个问题有下面两种方式:第一种是降低less版本,另一个是配置css的 less-loader,我们使用第二种



272833a476a047dfa37d55b46faa2696.png


查看 vuecli 的 官网配置https://cli.vuejs.org/zh/config/#css-loaderoptions


b8480f015678457daaad476658596b45.png


我们新建 vue.config.js 文件,添加下面的配置

module.exports = {
    css: {
        loaderOptions: {
            less: {
                javascriptEnabled: true
            },
        }
    }
}


然后重新启动一下,发现就没有报错了。

dc65f1fddb9e44b9893c66719d404c16.png


我们在 App.vue 组件里添加下面代码

<template>
  <div id="app">
    <a-button>按钮</a-button>
  </div>
</template>
<style lang="less"></style>

502f4fff7be7424ba863a2a4f3a9d84a.png



按需引入 ant-design-vue 组件

我们可以看到全局注册所有组件会很大


c37febe6133c4b2da0754d34cc6f47b3.png

我们可以使用到的时候在引入

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
// import Antd from "ant-design-vue";
// // 需要自定义样式主题,这里使用less
// import "ant-design-vue/dist/antd.less";
import Button from "ant-design-vue/lib/button";
import 'ant-design-vue/lib/button/style';
Vue.config.productionTip = false;
// Vue.use(Antd);
Vue.use(Button);
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");


我们可以看到小了很多,但是这样还是很不方便,需要每个都这样去引入单个组件的东西

516e2cf168b247b191183772099a3983.png


如果你使用了 babel,那么可以使用 babel-plugin-import 来进行按需加载。

3a62fe142eaf47168878c091652e8ec1.png


具体可以参考https://1x.antdv.com/docs/vue/introduce-cn/

我们按照文档上的添加babel配置,修改 babel.config.js 配置

module.exports = {
  presets: ["@vue/cli-plugin-babel/preset"],
  "plugins": [
    ["import", { 
      "libraryName": "ant-design-vue",
      "libraryDirectory": "es",
      "style": true // 会加载 less 文件
    }]
  ]
};


安装依赖

npm i babel-plugin-import -D


d337440d00bd4107bcfc62346de27f6b.png


修改 main.js 文件里的引入组件方式

import Vue from "vue";
import App from "./App.vue";
import router from "./router";
import store from "./store";
// import Antd from "ant-design-vue";
// // 需要自定义样式主题,这里使用less
// import "ant-design-vue/dist/antd.less";
// import Button from "ant-design-vue/lib/button";
// import 'ant-design-vue/lib/button/style';
import { Button } from "ant-design-vue";
Vue.config.productionTip = false;
// Vue.use(Antd);
Vue.use(Button);
new Vue({
  router,
  store,
  render: h => h(App)
}).$mount("#app");


重启下服务,我们可以看到效果是一样的。


98386378186c4304a329a1ca9ca72d0d.png

目录
相关文章
|
人工智能 自然语言处理 JavaScript
通义灵码2.5实战评测:Vue.js贪吃蛇游戏一键生成
通义灵码基于自然语言需求,快速生成完整Vue组件。例如,用Vue 2和JavaScript实现贪吃蛇游戏:包含键盘控制、得分系统、游戏结束判定与Canvas动态渲染。AI生成的代码符合规范,支持响应式数据与事件监听,还能进阶优化(如增加启停按钮、速度随分数提升)。传统需1小时的工作量,使用通义灵码仅10分钟完成,大幅提升开发效率。操作简单:安装插件、输入需求、运行项目即可实现功能。
663 4
 通义灵码2.5实战评测:Vue.js贪吃蛇游戏一键生成
|
缓存 前端开发 JavaScript
Webpack与Babel的进阶配置与优化
通过以上的进阶配置和优化策略,可以更好地发挥`Webpack`与`Babel`的功能,提高项目的性能和开发效率。
720 147
|
前端开发
在Webpack配置文件中,如何配置loader以处理其他类型的文件,如CSS或图片
在Webpack配置文件中,通过设置`module.rules`来配置loader处理不同类型的文件。例如,使用`css-loader`和`style-loader`处理CSS文件,使用`file-loader`或`url-loader`处理图片等资源文件。配置示例:在`rules`数组中添加对应规则,指定`test`匹配文件类型,`use`指定使用的loader。
|
JavaScript 前端开发 UED
如何配置 Webpack 进行代码分离?
通过以上方法,可以有效地配置Webpack进行代码分离,根据项目的具体需求和场景选择合适的方式,能够显著提高应用的性能和用户体验。在实际应用中,还可以结合其他优化技术,进一步优化Webpack的打包结果和应用的加载速度。
544 5
|
前端开发 JavaScript
webpack相关配置
以上只是Webpack配置的一些常见部分,实际应用中还可以根据具体的项目需求和场景进行更复杂和细致的配置,以满足不同的构建和优化要求。
333 2
|
JavaScript API 容器
Vue 3 中的 nextTick 使用详解与实战案例
Vue 3 中的 nextTick 使用详解与实战案例 在 Vue 3 的日常开发中,我们经常需要在数据变化后等待 DOM 更新完成再执行某些操作。此时,nextTick 就成了一个不可或缺的工具。本文将介绍 nextTick 的基本用法,并通过三个实战案例,展示它在表单验证、弹窗动画、自动聚焦等场景中的实际应用。
1277 17
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
资源调度 JavaScript 前端开发
Pinia 如何在 Vue 3 项目中进行安装和配置?
Pinia 如何在 Vue 3 项目中进行安装和配置?
1390 4
|
缓存 JavaScript 前端开发
配置 Webpack 进行代码分离的常见方法有哪些?
通过以上常见方法,可以根据项目的具体需求和场景,灵活地配置Webpack进行代码分离,从而提高应用的性能和加载速度,优化用户体验。
363 3
|
10月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
793 2