如何用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混入与插件的使用介绍

    下面将对Vue混入与插件的使用进行详细讲解。 什么是Vue混入? Vue混入是一种分发Vue组件中可复用功能的非常灵活的方式。混入(mixin)对象可以包含任意组件选项。当组件使用混入对象时,混入对象中的选项会被“混入”到组件自身的选项中。换句话说,混入就是将一些组件中相同的部分提取出来,然后在多个组件中共用。 混入的应用场景很广泛,例如:多个组件都需要注入…

    Vue 2023年5月28日
    00
  • vue代码分割的实现(codesplit)

    Vue.js 是一款流行的构建用户界面的 JavaScript 框架。它具有优雅的 API 设计、高效的渲染和灵活的数据绑定,目前已经成为了不少前端工程师喜欢的框架之一。其中,Vue 中的代码分割是进行性能优化时经常用到的一个关键概念。 代码分割能够将你的代码库划分为更小的块单元,以便实现懒加载 (lazy-loading) 和按需加载 (on-demand…

    Vue 2023年5月29日
    00
  • 一文搞懂vue编译器(DSL)原理

    一、Vue编译器(DSL)的原理 在讲解Vue编译器(DSL)原理前,我们先来了解一下什么是DSL。 DSL(Domain Specific Language),中文名为领域特定语言。DSL是一个非常重要的概念,它是指针对某一领域的语言和工具,是一种非通用的语言,优点是极大地提高了效率,缺点是只有在特定的领域下才有用。 Vue编译器(DSL)原理,就是通过使…

    Vue 2023年5月27日
    00
  • Vue开发实践指南之应用入口

    让我来详细讲解一下“Vue开发实践指南之应用入口”的完整攻略。 什么是应用入口 应用入口是一个前端项目(如Vue项目)的入口文件,也是一个前端项目的重要组成部分。在Vue项目中,应用入口是指main.js文件。 在Vue项目中,应用入口主要负责以下几个任务: 加载Vue框架和相关插件。 初始化Vue实例。 配置全局组件和Vue指令。 配置全局过滤器。 配置全…

    Vue 2023年5月28日
    00
  • 对VUE中的对象添加属性

    对VUE中的对象添加属性,可以通过以下步骤进行: 步骤1:定义一个VUE对象 <script> export default { data () { return { user: { name: ‘张三’, age: 20 } } } } </script> 步骤2:添加属性 接下来就可以随时添加属性了,可以通过以下两种方式: 方式1…

    Vue 2023年5月28日
    00
  • Vue状态机的开启与停止操作详细讲解

    Vue状态机的开启与停止操作详细讲解 Vue状态机是实现应用程序状态管理的一种常见方式。它是一个基于Vue框架的库,可以帮助你在Vue应用程序中轻松管理状态的变化。在Vue中,状态机通常是一个基于RxJS或其他数据流程库的事件流,它们被用于自动更新视图和状态。 开始状态机 要开始状态机,您需要在Vue应用程序中引入状态机库。通常,您可以通过npm包管理器安装…

    Vue 2023年5月27日
    00
  • vue3常用响应式对象的api,你全用过了吗

    下面是关于Vue3常用响应式对象的API的完整攻略。 Vue3常用响应式对象的API ref ref 是 Vue3 中创建响应式数据的函数。可以用来包装基本类型的数据,例如数字、字符串等。ref 函数返回一个具有 value 属性的对象,该属性的值为传入的初始值,并且它是响应式的。 示例1: import { ref, reactive } from ‘vu…

    Vue 2023年5月28日
    00
  • vue清空form对象的方法

    当我们使用Vue框架开发前端应用时,经常需要将前端表单数据绑定到Vue实例属性,但是在一些场景中,当我们需要清空这些表单数据时,可以使用以下两种方法: 方法一:重新创建Vue实例 在一些简单的应用中,我们可以通过重新创建Vue实例来清空表单数据,示例代码如下: <template> <div> <input type=&quot…

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