详解用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)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • 基于Vue实现后台系统权限控制的示例代码

    基于Vue实现后台系统权限控制的示例代码,可分为以下几个步骤: 实现路由拦截 在Vue项目中,可以通过element-ui的router插件实现路由拦截。在路由配置文件中,通过设置meta字段的requireAuth属性来实现对需要授权的页面进行拦截。示例代码如下: import Vue from ‘vue’; import VueRouter from ‘…

    Vue 2023年5月27日
    00
  • Vue3+TS+Vite+NaiveUI搭建一个项目骨架实现

    下面我来详细讲解“Vue3+TS+Vite+NaiveUI搭建一个项目骨架实现”的完整攻略。 准备工作 在开始搭建项目骨架之前,我们需要先完成一些准备工作: 确认已安装 Node.js 安装 Vue CLI 4 或更高版本:npm install -g @vue/cli 创建项目:vue create my-project 安装 Vite Vite 是一个新…

    Vue 2023年5月27日
    00
  • 超实用vue中组件间通信的6种方式(最新推荐)

    超实用vue中组件间通信的6种方式(最新推荐) Vue是一个组件化的框架,组件间的通信是非常重要的部分。本文总结了6种超实用的Vue组件间通信的方式,分别是props和$emit、$parent和$children、$refs、事件总线、Vuex和provide和inject。 方式一:props和$emit props和$emit是vue中非常基础中的通信…

    Vue 2023年5月28日
    00
  • vue router权限管理实现不同角色显示不同路由

    实现权限管理需要以下步骤: 1. 安装Vue Router npm install vue-router –save 2. 配置路由 在router/index.js文件中,定义路由和对应的组件,并为每个路由定义一个meta字段,用于存放该路由需要的权限。 import Vue from ‘vue’ import Router from ‘vue-rout…

    Vue 2023年5月27日
    00
  • vue中添加mp3音频文件的方法

    下面是详细讲解 Vue 中添加 mp3 音频文件的方法的完整攻略。 1.准备工作 在 Vue 项目的 public 目录下创建 audio 目录,并将需要添加的 mp3 音频文件放置在该目录下。 2.添加音频标签 在需要添加音频的组件中,使用 HTML5 音频标签 audio,并为其设置 src 属性为音频文件的相对路径: <audio src=&qu…

    Vue 2023年5月27日
    00
  • vue3.0如何在全局挂载对象和方法

    在Vue 3.0中,我们可以使用 createApp 函数来创建一个应用实例,在该实例中可以挂载对象和方法,使其在全局范围内可用。 全局挂载对象 在应用实例中调用 provide 方法,然后将需要全局挂载的对象作为参数传递进去,即可实现全局挂载该对象。 // main.js import { createApp } from ‘vue’ import App…

    Vue 2023年5月28日
    00
  • vue3获取ref实例结合ts的InstanceType问题

    获取ref实例是Vue3中常用的一种方式,可以用来访问组件内部的数据和方法。在TypeScript环境下,获取ref实例需要注意InstanceType问题。下面是一份完整的攻略,分为以下几个步骤: 步骤一:创建组件 首先我们需要创建一个Vue3组件,用来演示获取ref实例的过程。这里以一个简单的计数器组件为例: <template> <d…

    Vue 2023年5月27日
    00
  • Vue.js 2.5新特性介绍(推荐)

    Vue.js 2.5新特性介绍(推荐) Vue.js 2.5是Vue.js的一个重要版本,在它被发布后,带来了很多有用的新特性和重要的改进,使得Vue.js更加易用且强大。在本文中,我们将会介绍Vue.js 2.5中的主要新特性,并且提供一些例子来说明它们的用法。 渐进式渲染(SSR) Vue.js 2.5是一个完全支持服务器端渲染的版本。服务器端渲染(SS…

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