【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

目录
打赏
0
0
0
0
21
分享
相关文章
在Webpack配置文件中,如何配置loader以处理其他类型的文件,如CSS或图片
在Webpack配置文件中,通过设置`module.rules`来配置loader处理不同类型的文件。例如,使用`css-loader`和`style-loader`处理CSS文件,使用`file-loader`或`url-loader`处理图片等资源文件。配置示例:在`rules`数组中添加对应规则,指定`test`匹配文件类型,`use`指定使用的loader。
Webpack与Babel的进阶配置与优化
通过以上的进阶配置和优化策略,可以更好地发挥`Webpack`与`Babel`的功能,提高项目的性能和开发效率。
如何配置 Webpack 进行代码分离?
通过以上方法,可以有效地配置Webpack进行代码分离,根据项目的具体需求和场景选择合适的方式,能够显著提高应用的性能和用户体验。在实际应用中,还可以结合其他优化技术,进一步优化Webpack的打包结果和应用的加载速度。
133 5
webpack相关配置
以上只是Webpack配置的一些常见部分,实际应用中还可以根据具体的项目需求和场景进行更复杂和细致的配置,以满足不同的构建和优化要求。
91 2
配置 Webpack 进行代码分离的常见方法有哪些?
通过以上常见方法,可以根据项目的具体需求和场景,灵活地配置Webpack进行代码分离,从而提高应用的性能和加载速度,优化用户体验。
72 3
前端性能优化:Webpack与Babel的进阶配置与优化策略
【10月更文挑战第28天】在现代Web开发中,Webpack和Babel是不可或缺的工具,分别负责模块打包和ES6+代码转换。本文探讨了它们的进阶配置与优化策略,包括Webpack的代码压缩、缓存优化和代码分割,以及Babel的按需引入polyfill和目标浏览器设置。通过这些优化,可以显著提升应用的加载速度和运行效率,从而改善用户体验。
137 6
前端工程化:Webpack与Gulp的构建工具选择与配置优化
【10月更文挑战第27天】在现代前端开发中,构建工具的选择对项目的效率和可维护性至关重要。本文比较了Webpack和Gulp两个流行的构建工具,介绍了它们的特点和适用场景,并提供了配置优化的最佳实践。Webpack适合大型模块化项目,Gulp则适用于快速自动化构建流程。通过合理的配置优化,可以显著提升构建效率和性能。
107 2
|
3月前
|
vue使用iconfont图标
vue使用iconfont图标
177 1
极致的灵活度满足工程美学:用Vue Flow绘制一个完美流程图
本文介绍了使用 Vue Flow 绘制流程图的方法与技巧。Vue Flow 是一个灵活强大的工具,适合自定义复杂的流程图。文章从环境要求(Node.js v20+ 和 Vue 3.3+)、基础入门案例、自定义功能(节点与连线的定制、事件处理)到实际案例全面解析其用法。重点强调了 Vue Flow 的高度灵活性,虽然预定义内容较少,但提供了丰富的 API 支持深度定制。同时,文中还分享了关于句柄(handles)的使用方法,以及如何解决官网复杂案例无法运行的问题。最后通过对比 mermaid,总结 Vue Flow 更适合需要高度自定义和复杂需求的场景,并附带多个相关技术博客链接供进一步学习。

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等