如何用webpack4带你实现一个vue的打包的项目

下面是如何用webpack4带你实现一个vue的打包的项目的完整攻略。

一、安装和配置webpack

首先安装webpack和webpack-cli依赖:

npm install webpack webpack-cli --save-dev

然后在项目根目录下创建webpack.config.js文件,并写入如下配置:

module.exports = {
  entry: './src/main.js',
  output: {
    filename: 'bundle.js',
    path: __dirname + '/dist'
  }
};

这里配置了一个入口文件为src/main.js,输出文件名为bundle.js,输出路径为dist目录。

你也可以通过命令行直接指定配置文件,如:

npx webpack --config webpack.config.js

二、安装和配置vue-loader

vue的单文件组件需要使用vue-loader插件来处理,先安装依赖:

npm install vue-loader vue-template-compiler --save-dev

然后在webpack.config.js文件中添加如下配置:

const VueLoaderPlugin = require('vue-loader/lib/plugin');

module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.vue$/,
        use: 'vue-loader'
      }
    ]
  },
  plugins: [
    new VueLoaderPlugin()
  ]
};

这里配置了一个用于处理vue文件的rule规则,使用vue-loader来进行处理。

三、安装和配置babel-loader

如果你需要编译es6代码,可以使用babel-loader来处理,先安装依赖:

npm install babel-loader @babel/core @babel/preset-env --save-dev

然后在webpack.config.js文件中添加如下配置:

module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: 'babel-loader'
      }
    ]
  }
};

这里配置了一个用于处理js文件的rule规则,使用babel-loader来进行处理。

四、安装和配置css和sass处理器

对于样式文件,我们需要使用css-loaderstyle-loadersass-loader来进行处理。先安装依赖:

npm install css-loader style-loader sass-loader node-sass --save-dev

然后在webpack.config.js文件中添加如下配置:

module.exports = {
  // ...
  module: {
    rules: [
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.scss$/,
        use: ['style-loader', 'css-loader', 'sass-loader']
      }
    ]
  }
};

这里配置了两个用于处理csssass文件的rule规则。

五、完整的webpack配置

最终的webpack.config.js文件如下所示:

const VueLoaderPlugin = require('vue-loader/lib/plugin');

module.exports = {
  entry: './src/main.js',
  output: {
    filename: 'bundle.js',
    path: __dirname + '/dist'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: 'babel-loader'
      },
      {
        test: /\.vue$/,
        use: 'vue-loader'
      },
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.scss$/,
        use: ['style-loader', 'css-loader', 'sass-loader']
      }
    ]
  },
  plugins: [
    new VueLoaderPlugin()
  ]
};

六、实例演示

以下是一个基于webpack4的vue项目演示:

1、创建项目

首先创建一个新的目录,然后初始化npm

mkdir webpack-vue-demo
cd webpack-vue-demo
npm init -y

2、安装依赖

然后安装依赖:

npm install webpack webpack-cli vue vue-loader vue-template-compiler babel-loader @babel/core @babel/preset-env css-loader style-loader sass-loader node-sass --save-dev

3、创建文件

在项目根目录下创建以下目录和文件:

├── src
│   ├── App.vue
│   ├── main.js
│   └── style.scss
├── dist
│   └── index.html
└── webpack.config.js

其中,App.vue文件内容如下:

<template>
  <div class="hello">{{msg}}</div>
</template>

<script>
export default {
  data() {
    return {
      msg: 'Hello, Vue world!'
    };
  }
};
</script>

<style lang="scss">
.hello {
  color: blue;
  font-size: 2rem;
}
</style>

style.scss文件内容如下:

$color: #f00;

.hello {
  color: $color;
  font-size: 2rem;
}

main.js文件内容如下:

import Vue from 'vue';
import App from './App.vue';
import './style.scss';

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

index.html文件内容如下:

<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>Webpack Vue Demo</title>
</head>
<body>
  <div id="app"></div>
  <script src="bundle.js"></script>
</body>
</html>

webpack.config.js文件内容如下:

const VueLoaderPlugin = require('vue-loader/lib/plugin');

module.exports = {
  entry: './src/main.js',
  output: {
    filename: 'bundle.js',
    path: __dirname + '/dist'
  },
  module: {
    rules: [
      {
        test: /\.js$/,
        exclude: /node_modules/,
        use: 'babel-loader'
      },
      {
        test: /\.vue$/,
        use: 'vue-loader'
      },
      {
        test: /\.css$/,
        use: ['style-loader', 'css-loader']
      },
      {
        test: /\.scss$/,
        use: ['style-loader', 'css-loader', 'sass-loader']
      }
    ]
  },
  plugins: [
    new VueLoaderPlugin()
  ]
};

4、运行项目

最后,在命令行中运行npm run build打包项目,在浏览器中打开dist/index.html文件即可看到效果。

如果需要实时预览,可以使用webpack-dev-server,先安装依赖:

npm install webpack-dev-server --save-dev

然后在package.json中添加如下scripts

"scripts": {
  "start": "webpack-dev-server --open"
}

接着在命令行中运行npm start即可预览项目。

以上就是如何用webpack4带你实现一个vue的打包的项目的完整攻略,希望能对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:如何用webpack4带你实现一个vue的打包的项目 - Python技术站

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

相关文章

  • Vue中data数据初始化方法详解

    下面是关于“Vue中data数据初始化方法详解”的完整攻略。 Vue中data数据初始化方法详解 Vue中data初识 在Vue中,我们经常会使用data属性来存储组件中的数据,在组件创建时会把data中定义的数据预先初始化。 Vue.component(‘example’, { data() { return { foo: ‘bar’ } } }) 在这个…

    Vue 2023年5月28日
    00
  • vant实现购物车功能

    下面是详细讲解 “vant 实现购物车功能” 的完整攻略: 概述 vant 是一套移动端的 Vue 组件库,它提供了丰富的 UI 布局和组件,包括轮播图、列表、按钮、输入框、弹出框等等常用的移动端组件,同时 vant 还提供了一些实用的 API,比如下拉刷新、无限滚动等等。vant 的组件库精简实用,特别适合开发移动端应用,本文将使用 vant 组件库来实现…

    Vue 2023年5月27日
    00
  • Vue2 模板template的四种写法总结

    Vue2 模板template的四种写法总结: Vue2 中,我们可以使用 template 来书写 HTML 模板,但是它也有多种写法,下面我们来总结一下。 1. 字符串模板形式 我们可以在组件中定义字符串模板。 <template> <div> <h1>{{ title }}</h1> <p>{…

    Vue 2023年5月29日
    00
  • Vue3生命周期函数和方法详解

    Vue3生命周期函数和方法详解 生命周期函数 Vue3中的生命周期函数有如下: beforeCreate 在实例准备被创建之前,也就是数据观测和初始化事件还没开始的时候触发。在这个阶段无法获取到 data 和 methods 中的数据。此时我们可以在此阶段中做一些初始化的操作,如全局变量的初始化。 export default { beforeCreate(…

    Vue 2023年5月28日
    00
  • 简单聊一聊axios配置请求头content-type

    当使用axios发送HTTP请求时,你可以在请求中添加headers头部来指定Content-Type类型。默认情况下,Content-Type类型为application/json。这意味着在发送axios请求时,如果我们的请求需要使用不同的Content-Type设置,我们需要进行额外的配置。 下面是一份通用的axios请求配置,可以让我们设置请求头的C…

    Vue 2023年5月28日
    00
  • 详解Vue与VueComponent的关系

    详解 Vue 与 Vue Component 的关系 Vue 是一款流行的前端框架,使用 Vue 可以方便地实现动态数据绑定、组件化以及声明式渲染等功能。而 Vue Component 则是 Vue 框架中组件的概念。本文将详细讲解 Vue 和 Vue Component 的关系,并通过两条示例说明。 Vue 和 Vue Component 的关系 Vue …

    Vue 2023年5月27日
    00
  • axios封装与传参示例详解

    针对题目“axios封装与传参示例详解”,我将分以下几个部分进行详细讲解: 什么是axios及其用途 axios的基本用法 axios的封装原理及方法 axios传参的详解及示例 1. 什么是axios及其用途 axios是一个基于Promise的HTTP请求客户端,可以用于浏览器和Node.js。它具有以下优点: 可同时在浏览器和Node.js中使用。 能…

    Vue 2023年5月28日
    00
  • Vue使用lodash进行防抖节流的实现

    下面是我对“Vue使用lodash进行防抖节流的实现”的完整攻略。 什么是防抖和节流 在讲解实现方法之前,我们来介绍一下什么是防抖和节流。 防抖指的是在事件被触发n秒后再执行回调,如果在这n秒内又被触发,则重新开始计时。防抖常用于用户输入的场景中,如搜索框输入查询关键字。 节流指的是在一个时间段内只执行一次回调函数,即达到规定的执行间隔时间后才执行。常用于页…

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