详解用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中mock数据,模拟后台接口实例

    下面我将为您详细讲解如何在Vue中mock数据并模拟后台接口的完整攻略,包含以下流程: 安装mockjs库 配置mock数据 模拟接口请求 首先,我们需要在Vue项目中安装mockjs库,使用npm进行安装: npm install mockjs –save-dev 接着,在项目中创建一个mock文件夹,用于存放mock数据。在mock文件夹中新建一个in…

    Vue 2023年5月28日
    00
  • Vue项目设置可以局域网访问

    首先,让Vue项目可以在局域网内访问需要做以下两个步骤: 1. 更改启动命令 默认情况下,Vue项目是通过npm run serve启动的,它只能在本地进行访问。如果要使其可以在局域网内被访问,需要在启动命令后加上–host 0.0.0.0选项,这样才可以监听所有网络接口。 打开package.json文件,在scripts中找到serve命令,修改为以下…

    Vue 2023年5月28日
    00
  • Vue六大基本类型中的原始值响应式

    Vue六大基本类型中的原始值响应式是指 Vue 对于 JavaScript 基本数据类型的响应式实现,包括 Number、String、Boolean 和 Symbol 四个类型的数据。 Vue 对于这些数据类型的响应式实现是通过 Object.defineProperty() 方法来实现的。当 Vue 检测到数据发生变化时,会调用数据的 setter 方法…

    Vue 2023年5月28日
    00
  • Vue动态表单的应用详解

    下面是关于“Vue动态表单的应用详解”的完整攻略。 简介 Vue动态表单的应用指的是根据不同的数据进行表单渲染,并可以根据用户的不同操作对表单进行相应的变动。这种技术通常被应用于一些需要根据不同的业务场景生成不同表单的场合,例如表单生成器、问卷调查等。 实现方法 实现 Vue 动态表单的关键在于动态渲染表单,引入 element-ui 的动态表单是实现这个功…

    Vue 2023年5月28日
    00
  • vue微信分享插件使用方法详解

    Vue微信分享插件使用方法详解 微信分享是现代互联网应用中非常热门的话题。Vue微信分享插件可以帮助Vue应用程序快速集成微信分享功能。在这篇文章中,我将详细讲解Vue微信分享插件的使用方法。 安装 在使用Vue微信分享插件之前,我们需要先安装它。 你可以使用npm进行安装,可以在命令行中输入以下命令: npm install vue-wechat-shar…

    Vue 2023年5月28日
    00
  • vue.js动画中的js钩子函数的实现

    Vue.js动画中的JS钩子函数的实现 Vue.js提供了一套完整的动画系统,使得开发者能够轻易地实现各种动态效果。在Vue.js中,动画通过CSS、JavaScript或Web动画API实现。而动画所需要的具体动作则由JS钩子函数来掌控。 动画钩子函数 Vue.js为我们提供了一个允许我们在动画特定阶段添加自定义逻辑的钩子函数全家桶。以下是一些主要的动画钩…

    Vue 2023年5月28日
    00
  • rollup3.x+vue2打包组件的实现

    下面是rollup3.x+vue2打包组件的实现攻略: 什么是Rollup Rollup是一个JavaScript模块打包器,可以将小块代码编译成大块复杂的代码,它专注于ES模块的打包。 Rollup和Vue组件库打包 Vue组件库是一种常见的前端开发方式,它可以将页面中可复用的组件单独封装成一个独立的组件库,使用时只需要引用该组件库就可以方便地使用这些组件…

    Vue 2023年5月28日
    00
  • Vue编程三部曲之将template编译成AST示例详解

    下面我将详细讲解“Vue编程三部曲之将template编译成AST示例详解”的完整攻略。 1. 什么是AST AST(Abstract Syntax Tree),即抽象语法树,是一种计算机科学中的树状数据结构。在编译原理中,AST是源代码的抽象语法结构的树状表现形式。它生成于解析阶段,通常由解析器创建,并被用作后续编译的基础。 2. 将template编译成…

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