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

yizhihongxing

下面是如何用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小白入门教程

    Vue小白入门教程攻略 Vue.js是现在最火热的前端框架之一。它提供了一种简洁、高效的方式来构建现代化的Web应用程序。本教程将引导您轻松入门并开始使用Vue.js构建您的第一个Web应用程序。 步骤1: 安装Vue.js Vue.js可以通过CDN链接或者通过下载文件的形式来引入到页面中。我们推荐使用CDN链接的方式来引入Vue.js。 在你的HTML文…

    Vue 2023年5月28日
    00
  • vue中实现路由跳转的三种方式超详细教程

    接下来我将为你详细讲解“vue中实现路由跳转的三种方式超详细教程”。 背景介绍 Vue是一款流行的JavaScript框架。Vue Router是Vue的官方路由管理器。在Vue中,可以使用Vue Router实现页面路由跳转。 本教程将介绍Vue Router中实现路由跳转的三种方式。这三种方式分别是: 使用<router-link>标签进行跳…

    Vue 2023年5月29日
    00
  • vue3如何定义变量及ref、reactive、toRefs特性说明

    下面是关于Vue3如何定义变量及ref、reactive、toRefs特性说明的攻略。 定义变量 在Vue3中,定义变量有两种方式: 1. 使用const/let/var关键字 使用const/let/var关键字定义变量,这是ES6的语法。例如: const message = ‘Hello World’; // 定义常量 let count = 0; /…

    Vue 2023年5月27日
    00
  • 详解Java中wait和sleep的区别

    下面我将为大家详细讲解”详解Java中wait和sleep的区别”的完整攻略。 什么是wait和sleep? 在Java中,wait和sleep都是线程等待的方法。它们的作用都是让程序进入等待状态,但是两者还是有一些区别的。 wait和sleep的区别 wait是Object类的方法,而sleep是Thread类的方法。 在调用wait的时候,线程会释放它所…

    Vue 2023年5月28日
    00
  • 解决vue字符串换行问题(绝对管用)

    下面是解决Vue字符串换行问题的完整攻略: 问题描述 在Vue中,我们经常需要根据模板动态生成字符串。当字符串中需要包含多个换行符时,可以使用\n或者<br>来实现。但是如果我们将这个字符串直接放在模板中时,会发现换行符并没有起作用,而是直接输出了\n或者<br>这些字符。因此,我们需要一种方法来解决这个问题。 解决方案 在Vue中,…

    Vue 2023年5月27日
    00
  • 详解vue-cli项目中怎么使用mock数据

    下面是详细讲解vue-cli项目中怎么使用mock数据的完整攻略: 1. 什么是Mock数据? Mock(模拟)数据是指在应用开发中,为了测试或者展示某些特定场景,而生成的一些假数据,这些数据可以被用来代替实际的数据,来进行快速、高效的应用开发。在前后端分离的架构下,Mock数据往往是前端开发人员自己模拟生成,而不必触碰后端的真实数据。 2. 为什么使用Mo…

    Vue 2023年5月28日
    00
  • 浅谈Vue.set实际上是什么

    浅谈Vue.set实际上是什么 在Vue.js中,我们通常使用双向数据绑定的方式更新视图,但是,在某些情况下,我们需要手动更改对象或数组的元素来更新视图,此时就需要用到Vue.set方法。本文将详细讲解Vue.set的实际用法和含义,帮助您更好地了解Vue.js的数据绑定机制。 Vue.set的作用 Vue.set是Vue.js框架中用来改变被Vue.js监…

    Vue 2023年5月29日
    00
  • vue 出现data-v-xxx的原因及解决

    我来为您讲解”vue 出现data-v-xxx的原因及解决”的完整攻略。 一、 原因 在Vue中,我们通常使用模板语法和组件来构建UI界面。在这个过程中,我们定义了许多组件和样式。但是由于Vue的单文件组件特性,组件和样式都是被局部作用的。如果没有对应的处理,那么在多个组件中使用了相同的样式类名,就会产生样式冲突的问题。 为了解决这个问题,Vue采用了一种称…

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