详解用webpack2.0构建vue2.0超详细精简版

yizhihongxing

下面是详解“用webpack2.0构建vue2.0超详细精简版”的完整攻略。

一、安装依赖

在开始构建项目前,我们需要先安装相关依赖,执行以下命令:

npm i webpack webpack-dev-server vue vue-loader vue-template-compiler css-loader style-loader file-loader url-loader babel-core babel-loader babel-preset-env babel-plugin-transform-object-rest-spread --save-dev

二、配置webpack.config.js

接下来我们需要配置webpack,新建webpack.config.js文件,并完成以下配置:

const { VueLoaderPlugin } = require('vue-loader')

module.exports = {
  entry: {
    app: './src/index.js'
  },
  output: {
    path: __dirname + '/dist',
    filename: 'bundle.js'
  },
  module: {
    rules: [
      {
        test: /\.vue$/,
        use: 'vue-loader'
      },
      {
        test: /\.js$/,
        use: 'babel-loader',
        exclude: /node_modules/
      },
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.(png|jpg|gif|svg)$/,
        use: [{
          loader: 'url-loader',
          options: {
            limit: 8192
          }
        }]
      }
    ]
  },
  plugins: [
    new VueLoaderPlugin()
  ]
}

三、配置.babelrc

由于我们使用了babel来处理ES6语法,需要在项目根目录添加.babelrc文件,并完成以下配置:

{
  "presets": ["env"],
  "plugins": ["transform-object-rest-spread"]
}

四、创建Vue实例和组件

接下来我们需要创建Vue实例和组件,新建src目录,并在其中新建index.jsApp.vue文件。

1、index.js

import Vue from 'vue'
import App from './App.vue'

new Vue({
  el: '#app',
  render: h => h(App)
})

2、App.vue

<template>
  <div class="app">
    <h1>{{ msg }}</h1>
    <img :src="imageUrl">
  </div>
</template>

<script>
export default {
  data () {
    return {
      msg: 'Hello Vue.js',
      imageUrl: './img/logo.png'
    }
  }
}
</script>

<style>
.app {
  text-align: center;
}
</style>

五、启动项目

最后,在命令行中执行以下命令,启动项目:

webpack-dev-server

打开浏览器,在地址栏输入http://localhost:8080,你应该能看到一个页面,上面有”Hello Vue.js”和Vue官方的logo图标。

以上是“用webpack2.0构建vue2.0超详细精简版”的完整攻略。下面展示两个示例,以更好的理解整个流程。

示例1:处理CSS文件

假设我们在App.vue中引入了一个CSS文件,代码如下:

<template>
  <div class="app">
    <h1>{{ msg }}</h1>
    <img :src="imageUrl">
  </div>
</template>

<script>
export default {
  data () {
    return {
      msg: 'Hello Vue.js',
      imageUrl: './img/logo.png'
    }
  }
}
</script>

<style src="./style.css"></style>

那么我们需要在webpack.config.js中添加一个CSS文件的loader,即可正确处理CSS文件,代码如下:

{
  test: /\.css$/,
  use: ['style-loader', 'css-loader']
}

示例2:处理图片和字体文件

假设我们在App.vue中引入了一个图片和一个字体文件,代码如下:

<template>
  <div class="app">
    <h1>{{ msg }}</h1>
    <img :src="imageUrl">
    <span class="iconfont icon-heart"></span>
  </div>
</template>

<script>
export default {
  data () {
    return {
      msg: 'Hello Vue.js',
      imageUrl: './img/logo.png'
    }
  }
}
</script>

<style>
@font-face {
  font-family: 'iconfont';
  src: url('./font/iconfont.eot'); /* IE9 */
  src: url('./font/iconfont.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
  url('./font/iconfont.woff') format('woff'), /* chrome、firefox */
  url('./font/iconfont.ttf') format('truetype'), /* chrome、firefox、opera、Safari, Android, iOS 4.2+ */
  url('./font/iconfont.svg#iconfont') format('svg'); /* iOS 4.1- */
}
.iconfont {
  font-family: "iconfont" !important;
  font-size: 24px;
  font-style: normal;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
.icon-heart:before {
  content: "\e617";
}
</style>

那么我们需要在webpack.config.js中添加一个图片和字体的loader,即可正确处理图片和字体文件,代码如下:

{
  test: /\.(png|jpg|gif|svg)$/,
  use: [{
    loader: 'url-loader',
    options: {
      limit: 8192
    }
  }]
},
{
  test: /\.(woff2?|eot|ttf|otf)(\?.*)?$/,
  loader: 'url-loader',
  options: {
    limit: 10000,
    name: '[name].[ext]?[hash]'
  }
}

以上就是两个示例,相信能更好的帮助你理解整个流程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解用webpack2.0构建vue2.0超详细精简版 - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • vue项目代码格式规范设置参考指南

    下面我将详细讲解“vue项目代码格式规范设置参考指南”的完整攻略。 为什么需要代码格式规范? 在团队协作开发过程中,每个人的代码习惯存在差异,这样会导致代码风格混乱、不统一,给团队协作带来一定的困难,而代码格式规范可以统一代码格式,提高代码的可读性和可维护性,从而提高开发效率、降低维护成本。 选择合适的代码格式规范 选择一种合适的代码格式规范很重要,好的代码…

    Vue 2023年5月27日
    00
  • vue3使用canvas的详细指南

    下面是关于“vue3使用canvas的详细指南”的完整攻略: 什么是Canvas? Canvas是HTML5中新增的标签,可以通过Javascript来绘制图形和动画。Canvas提供了一些绘制方法,包括线条、矩形、圆形、文本等,也可以自定义绘制图形和动画。在前端开发中,Canvas能够提供很多有用的交互功能,比如通过Canvas实现一个可拖动的元素。 在V…

    Vue 2023年5月28日
    00
  • vue中的Object.freeze() 优化数据方式

    当我们在使用Vue.js时,我们会遇到需要对某个对象进行深度冻结的情况。这时,Vue提供了一个Object.freeze()方法来实现深度冻结。该方法可以冻结一个对象的所有属性,包括嵌套对象和数组中的属性。这种方式可以有效避免用户误操作导致数据变化,从而优化数据的稳定性和可靠性。 下面我们通过以下两个示例来具体说明如何使用Object.freeze()方法:…

    Vue 2023年5月27日
    00
  • mpvue中使用flyjs全局拦截的实现代码

    mpvue是一个能够基于Vue.js快速开发小程序的框架。与Vue.js类似,mpvue的语法和API几乎与之相同,开发者可以在短时间内熟练掌握其使用。而flyjs是一个优秀的基于Promise的HTTP请求库,能够支持拦截器等高级功能。本文将详细讲解在mpvue中使用flyjs全局拦截的实现代码,以及两个示例说明。 安装和使用flyjs 首先,在mpvue…

    Vue 2023年5月28日
    00
  • vue 如何删除数组中的某一条数据

    下面是关于Vue如何删除数组中的某一条数据的完整攻略。 一、使用splice方法删除指定元素 数组的splice方法可以实现对数组的删除和插入操作。这个方法有几个参数: index:要删除/插入的元素的索引值 howmany:要删除的元素个数 item:要插入的新元素(可选) 因此,我们可以使用splice方法来删除数组中的某一项元素。假设我们要从以下数组中…

    Vue 2023年5月27日
    00
  • 详解Vue2.0组件的继承与扩展

    详解Vue2.0组件的继承与扩展 Vue.js是一个流行的MVVM框架,它提供了组件化的开发方式,可以帮助我们更好地组织和封装代码。在Vue.js中,组件的继承和扩展是非常常见的需求。本篇文章将深入探讨Vue2.0组件的继承和扩展,包括继承和扩展的实现方法以及应用场景。 组件的继承 在Vue.js中,我们可以使用extend方法来创建新的组件,这也就是组件的…

    Vue 2023年5月28日
    00
  • vue-cli脚手架-bulid下的配置文件

    当使用 Vue.js 开发项目时,经常会使用到 Vue CLI 脚手架工具来初始化项目,并在 build 时自动生成配置文件来进行编译、打包等操作。以下是 Vue CLI 脚手架中 bulid 下的配置文件的详细解析: 1. 配置文件的作用 Vue CLI 脚手架的 build 目录下存放的是一些 webpack 的配置文件,这些配置文件主要用于在生产环境下…

    Vue 2023年5月28日
    00
  • Vue 自定义指令功能完整实例

    下面我将详细介绍“Vue自定义指令功能完整实例”的攻略。 一、Vue自定义指令简介 Vue中,我们可以自定义指令来增强视图层的交互能力。通过自定义指令,我们可以封装常用的DOM操作,让其可重用,并且能在模板中直接使用。常见的指令,如v-model、v-show、v-for、v-bind和v-on都是Vue自带的指令。而Vue自定义指令就是用户自己定义一些新的…

    Vue 2023年5月27日
    00
合作推广
合作推广
分享本页
返回顶部