vue-cli与webpack处理静态资源的方法及webpack打包的坑

yizhihongxing

下面我将详细介绍vue-cli与webpack处理静态资源的方法及webpack打包的坑。

1. vue-cli与webpack处理静态资源的方法

1.1 图片资源处理

在vue-cli项目中,图片资源可以使用require()直接导入,在vue文件中使用即可,例如:

<template>
  <div>
    <img :src="imgUrl" alt="">
  </div>
</template>

<script>
export default {
  name: 'Example',
  data() {
    return {
      imgUrl: require('@/assets/images/example.png')
    }
  }
}
</script>

1.2 CSS资源处理

可以在vue文件中使用import导入css文件,在style标签中使用即可,例如:

<template>
  <div class="example">
    Example
  </div>
</template>

<script>
export default {
  name: 'Example'
}
</script>

<style lang="scss">
@import '@/assets/styles/example.scss';

.example {
  // example.scss中定义的样式
  @include exampleMixin();
}
</style>

2. webpack打包的坑

2.1 文件名hash

使用vue-cli脚手架以及webpack构建项目时,打包时需要对文件名进行hash处理,防止浏览器缓存,具体设置如下:

// vue.config.js
module.exports = {
  filenameHashing: true,
  // ...其他配置
}

2.2 静态资源路径

在vue-cli项目中使用vue-router时,打包后的index.html引用静态资源的路径不对,需要手动设置publicPath,具体设置如下:

// vue.config.js
module.exports = {
  publicPath: './',
  // ...其他配置
}

2.3 打包后文件名不一致

在使用vue-cli构建项目并打包时,很可能会遇到一个问题,即打包后文件名经常不是你期望的名字。这是因为vue-cli在打包时会根据入口文件的名称生成output内的filename标识符。但是当webpack遇到第三方包时,它不会根据包名打包生成对应的文件名,而是根据module.exports,相关处理如下:

// vue.config.js
module.exports = {
  // 修改 webpack 的配置
  configureWebpack: {
    entry: {
      app: './src/main.js'
    },
    output: {
      filename: 'js/[name].[hash].js',
      chunkFilename: 'js/[name].[hash].js'
    },
    optimization: {
      runtimeChunk: 'single', // 将 webpack 的 runtime 和模板文件合并
      splitChunks: {
        cacheGroups: {
          vendor: {
            test: /[\\/]node_modules[\\/]/,
            name(module) {
              const packageName = module.context.match(/[\\/]node_modules[\\/](.*?)([\\/]|$)/)[1] // 由于名称不统一,这里的处理方式是取包名作为最终生成的文件名
              return `vendor.${packageName.replace('@', '')}`
            },
            chunks: 'all'
          }
        }
      }
    }
  },
  // ...其他配置
}

以上就是关于vue-cli与webpack处理静态资源的方法及webpack打包的坑的详细攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:vue-cli与webpack处理静态资源的方法及webpack打包的坑 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • CSS实现进度条和订单进度条

    下面我将详细讲解如何在网页中使用CSS实现进度条和订单进度条的完整攻略。 CSS 实现进度条 在CSS中,我们可以使用伪元素 ::before 和 ::after 来实现进度条。以下是 HTML 和 CSS 代码: <div class="progress-bar"> <div class="progress&…

    css 2023年6月11日
    00
  • Dreamweaver怎么设计网站的demo原型?

    Dreamweaver是一款非常优秀的网站开发工具,在设计网站的demo原型时,可以通过以下步骤进行: 1. 创建新网站 首先打开Dreamweaver,点击菜单栏中的“文件(File)”>“新建(New)”>“网站(Site)”,然后按照提示输入网站名称和保存位置等信息。成功创建网站后,Dreamweaver会自动进入代码编辑页面。 2. 设计…

    css 2023年6月11日
    00
  • 详解Vue2.x-directive的学习笔记

    首先,在学习Vue2.x-directive之前,我们需要了解一下Vue.js中的指令(Directive)是什么。指令是Vue.js提供的带有v-前缀的特殊属性,它们的职责是当表达式的值改变时,将某些行为应用到DOM元素上。例如,v-bind可以使当前元素的某个属性值与Vue.js数据模型中的属性值绑定在一起,v-show可以根据Vue.js数据模型中的值…

    css 2023年6月9日
    00
  • 解析CSS 提取图片主题色功能(小技巧)

    当我们设计一个网站,图片的使用是非常重要的。有时候,我们需要从一个图片中提取其主题颜色,来使用在网页的其他元素上,使整个页面更加协调美观。今天我将会介绍一个小技巧,可以通过解析CSS来提取图片的主题颜色。 步骤1:使用CSS提取图片 首先,我们需要通过CSS来提取图片的颜色信息。具体而言,我们需要使用CSS的background-image属性将图片应用到一…

    css 2023年6月9日
    00
  • CSS包含中文的问题说明

    下面是详细讲解“CSS包含中文的问题说明”的完整攻略。 问题说明 在CSS中使用中文文字,可能会因为不同的编码方式,导致显示出现乱码或无法正确识别的情况。具体问题如下: 使用@import导入CSS文件时,文件名中包含中文字符,可能会导致无法正确加载文件。 在CSS文件中直接使用中文字符,可能会导致文件编码与HTML文件或浏览器的编码不一致,从而导致中文字符…

    css 2023年6月9日
    00
  • Bootstrap table表格初始化表格数据的方法

    Bootstrap是一个流行的前端框架,提供了很多实用的组件,其中表格组件被广泛使用。本文将会介绍Bootstrap表格组件中初始化表格数据的方法,帮助读者快速上手。 1. 前置条件 在使用Bootstrap表格组件时,需要引入以下文件: bootstrap.css:Bootstrap的CSS文件 jquery.js:jQuery库 2. 初始化表格数据的方…

    css 2023年6月10日
    00
  • 自适应布局meta标签中viewport、content、width、initial-scale、minimum-scale、maximum-scale总结

    自适应布局是指网页在不同的设备上(如PC、手机、平板等)都能够有良好的展示效果,其中最重要的一步就是设置meta标签中viewport属性。 viewport属性用于控制浏览器的显示区域,以及渲染出来的页面在其中的放大或缩小比例。下面分别讲解viewport属性中各个参数的含义: width:指定viewport的宽度,可以是一个整数或者字符串“device…

    css 2023年6月10日
    00
  • javascript 随机展示头像实现代码

    下面我将详细讲解JavaScript随机展示头像实现代码的攻略。 1. 思路分析 在实现随机展示头像的功能之前,我们需要先准备好头像资源,比如说将各个头像用数字命名后,统一存放在一个文件夹中。然后,我们可通过JavaScript的Math.floor()、Math.random()、document.createElement()、setAttribute(…

    css 2023年6月10日
    00
合作推广
合作推广
分享本页
返回顶部