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

下面是详解“用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)
上一篇 3天前
下一篇 3天前

相关文章

  • vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法

    针对“vue跳转同一个组件,参数不同,页面接收值只接收一次”的问题,我们可以采用以下两种解决方案: 方案一:使用watch监听$route变化 这种方式需要在组件的created或mounted生命周期中,监听vue-router的$route对象。如下所示: <template> <div> <p>{{ message …

    Vue 2天前
    00
  • 使用vuex的state状态对象的5种方式

    使用 Vuex 的 state 状态对象的 5 种方式如下: 1. 直接在组件中读取 Vuex 的 state 状态对象保存了应用中大部分的共享状态,组件可以直接从 state 中读取数据。例如,我们有一个保存用户名的 state,在组件中可以这样读取: <template> <div> {{ username }} </div…

    Vue 1天前
    00
  • vue3中$refs的基本使用方法

    当我们需要在Vue组件中直接访问DOM元素时,可以使用Vue的特有属性$refs。在Vue3中,使用$refs的方法与Vue2中略有不同,下面我们来详细讲解vue3中$refs的使用方法。 1. 定义ref属性 要使用$refs属性,我们首先需要在需要访问DOM元素的组件中定义一个ref属性。可以在DOM元素上使用v-bind或简写的冒号来定义ref属性。例…

    Vue 2天前
    00
  • vuecli中chainWebpack的常用操作举例

    下面是详细讲解”vuecli中chainWebpack的常用操作举例”的攻略: 什么是chainWebpack 在使用VueCLI创建的项目中,除了可以使用默认的配置之外,还可以自定义Webpack的一些配置。在Webpack的配置文件中,有一个configureWebpack选项,可以直接添加和修改Webpack的配置。而chainWebpack操作提供了…

    Vue 3天前
    00
  • Vue指令之v-for的使用说明

    Vue指令之v-for的使用说明 Vue.js是一款渐进式的JavaScript框架,提供了一系列的指令来操作DOM,其中v-for指令可以用来循环遍历数组或对象,并输出相应的内容。 基本语法 使用v-for指令可以循环遍历数组或对象,基本语法如下: <ul> <li v-for="(item, index) in list&qu…

    Vue 2天前
    00
  • vuecli项目构建SSR服务端渲染的实现

    下面是关于“vuecli项目构建SSR服务端渲染的实现”的完整攻略: 1. 什么是SSR? SSR全称Server Side Rendering(服务端渲染),意思是将页面在服务器端进行渲染,然后再将已渲染的页面传输给客户端展示出来。 SSR的好处: 更快的页面渲染速度,减少白屏时间 更好的SEO(搜索引擎优化) 更好的用户体验 2. Vue CLI 3 如…

    Vue 2天前
    00
  • VUE中使用Vue-resource完成交互

    使用Vue-resource完成交互可以实现前端页面和后端服务器之间的数据交换和通信。下面是使用Vue-resource实现交互的完整攻略: 1. 安装Vue-resource 在使用Vue-resource前,首先要将其安装到Vue项目中,可以通过在命令行中执行以下命令进行安装: npm install vue-resource –save 2. 引入V…

    Vue 1天前
    00
  • 详解Vue中的基本语法和常用指令

    详解Vue中的基本语法和常用指令 Vue的基本语法 Vue.js是一个用于构建交互式Web界面的渐进式JavaScript框架。其中,最基本的语法就是Vue实例。创建Vue实例时,需要提供一个JavaScript对象作为参数,这个对象称之为“选项对象”。 选项对象有很多属性,其中最重要的是data属性。data属性中定义了Vue实例中用到的数据。例如下面这个…

    Vue 2天前
    00
  • Vitepress的文档渲染基础教程

    下面是完整的“Vitepress的文档渲染基础教程”的攻略。 Vitepress的文档渲染基础教程 简介 Vitepress 是一种基于 Vue 的静态站点生成器,适用于构建技术文档等静态站点。 Vitepress 充分利用 Vue 的单文件组件(SFC)能力,并在 VuePress 的基础上通过 Vite 构建实现高效的站点构建。 Vitepress 可以…

    Vue 2天前
    00
  • vue 数据(data)赋值问题的解决方案

    下面是关于“vue 数据(data)赋值问题的解决方案”的完整攻略,主要包括以下方面的内容: 问题背景 解决方案原理 解决方案具体实现及示例说明 总结 问题背景 在vue项目开发中,我们常常会遇到在方法中通过this.data的方式来赋值的问题。这种方式在大量运用时常常使代码变得很难维护。因此,我们需要了解如何通过一些方法或工具来解决数据赋值问题。 解决方案…

    Vue 1天前
    00