使用webpack(4版本)搭建vue2项目

news2024/11/17 17:43:10

在学习webpack之前,也从网上搜过一些用webpack搭建vue项目的博客,但是在自己使用的时候会报各种的问题,报错的根本原因其实就是版本的问题,以下代码是经过解决了许多报错问题研究出来最简单最方便搭建vue2项目的方法

  1. 首先创建一个空的文件夹
2.初始化配置
npm init -y(不需要交互,下载更快)
3.安装webpack
npm i webpack@4.41.6 webpack-cli@3.3.11 -D
4.创建配置文件

手动的在根目录下创建一个 webpack.config.js文件

配置以下基础内容

const { resolve } = require( 'path'); // node 内置核心模块,用来处理路径问题。
module.exports = {
entry: './src/js/ index .js', // 入口文件
output: { // 输出配置
filename: './built.js', // 输出文件名
path: resolve(__dirname, 'build/js') // 输出文件路径配置
},
mode: 'development' //开发环境
};
5.下载常用的loader安装包
npm i css-loader@3.4.2 style-loader@1.1.3 less-loader@5.0.0 less@3.11.1 -D  //打包样式资源
npm install --save-dev html-webpack-plugin@3.2.0 //打包html资源
npm install --save-dev html-loader@0.5.5 url-loader@3.0.0 file-loader@5.0.2 //打包图片资源
npm i webpack-dev-server@3.10.3 -D  //服务器端运行
npm install --save-dev mini-css-extract-plugin@0.9.0  //提取css成单独文件
npm install --save-dev postcss-loader@3.0.0 postcss-preset-env@6.7.0  //css兼容性处理
npm install --save-dev optimize-css-assets-webpack-plugin@5.0.3 //压缩css
npm install --save-dev clean-webpack-plugin  //清除打包文件
npm i vue-loader@15.7.1 vue-template-compiler@2.6.10 -D  //安装vue2
npm i vue@2.6.10 vue-router@3.1.3 vue-style-loader@4.1.2 

以上是比较常用的插件,具体插件的用途以及注意事项在(5条消息) webpack(4版本)使用_是张鱼小丸子鸭的博客-CSDN博客中已经详细的说明了,有需要的可以查看一下

还有一种方式,比较便捷,就是复制我们package.json中的devDependencies中的内容,然后使用yarn或者npm i

 "devDependencies": {
    "clean-webpack-plugin": "^4.0.0",
    "css-loader": "^3.4.2",
    "file-loader": "^5.0.2",
    "html-loader": "^0.5.5",
    "html-webpack-plugin": "^3.2.0",
    "less": "^3.11.1",
    "less-loader": "^5.0.0",
    "mini-css-extract-plugin": "^0.9.0",
    "optimize-css-assets-webpack-plugin": "^5.0.3",
    "postcss-loader": "^3.0.0",
    "postcss-preset-env": "^6.7.0",
    "style-loader": "^1.1.3",
    "url-loader": "^3.0.0",
    "webpack-dev-server": "^3.10.3",
   "vue-loader": "^15.7.1",
"vue-template-compiler": "^2.6.10"
  },
 "dependencies": {
    "vue": "^2.6.10",
    "vue-router": "^3.1.3",
    "vue-style-loader": "^4.1.2"
    },
  "browserslist": {
    "development": [
      "last 1 chrome version",
      "last 1 firefox version",
      "last 1 safari version"
    ],
    "production": [
      ">0.2%",
      "not dead",
      "not op_mini all"
    ]
  }

执行完上面的代码跟我们一点一点下载loader包效果一样,可以选择使用

6.配置文件(webpack.config.js)
const { resolve } = require("path"); // node 内置核心模块,用来处理路径问题。

const HtmlWebpackPlugins=require('html-webpack-plugin')
// css分成单独文件
const MiniCssExtractPlugin = require('mini-css-extract-plugin')
const {CleanWebpackPlugin}=require('clean-webpack-plugin')
const OptimizeCssAssetsWebpackPlugin = require('optimize-css-assets-webpack-plugin')
const VueLoaderPlugin = require("vue-loader/lib/plugin-webpack4");
process.env.NODE_ENV = 'development'
module.exports = {
    mode: 'development',   // mode=production
  entry: "./src/index.js", // 入口文件
  resolve: {
    extensions: [".js", ".vue", ".json"],
    alias: {
    // 'vue$': 'vue/dist/vue.js',
    "@": resolve(__dirname, "./src"),
    },
    },
  output: {
    // 输出配置
    filename: "./built.js", // 输出文件名
    path: resolve(__dirname, "build"), // 输出文件路径配置
  },
  plugins:[
    new VueLoaderPlugin(),
    new CleanWebpackPlugin(),
    new HtmlWebpackPlugins({
        template: './src/index.html'
    }),
    new MiniCssExtractPlugin({
        filename: './src/css/main.css',
        }),
    new OptimizeCssAssetsWebpackPlugin(),
  ],

  module:{
    rules:[
      {
        test: /\.vue$/,
        loader: "vue-loader",
        },
        {
            test: /\.(c|le)ss$/,
            use: [MiniCssExtractPlugin.loader,
                'css-loader',
                 {
                loader: 'postcss-loader',//预处理,这里指的是在解析css之前,做一下兼容性处理
                options: {
                ident: 'postcss',
                plugins: () => [require('postcss-preset-env')()],
                },
                },
               ],
            },
        {
            test:/\.(jpg|png|jpeg|gif)$/,
            loader: "url-loader",
            options: {
                limit: 6 * 1024,// 最大限制图片
                name: "[name].[hash:10].[ext]", //图片命名+哈希值保留位数+后缀
                outputPath: "images", //导出路径
                esModule: false,  //是否是模块
                },
        },
        {
            //用来解析在html文件中的图片
            test: /\.html$/,
            loader: "html-loader",
            },
     
    ]
  },
  devServer: {
    // 项目构建后路径
    contentBase: resolve(__dirname, 'build'),
    // 启动 gzip 压缩
    compress: true,
    // 端口号
    port: 3000,
    // 自动打开浏览器
    open: true
    }

};

这是我的项目目录,路由还没有配置,只是搭建了一个基础的vue项目

这样我的vue2项目的就搭建完成了,但是如果我们想要vue项目能在我们项目中显示,我们还需要配一些其他的操作

index.js

import Vue from 'vue'
import App from './App.vue'

new Vue({

  render: h => h(App)
}).$mount('#app')

注意上面的引入,以及引入文件的路径

index.html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        
    </div>
</body>
</html>

注意:一定要加上id='app'

index.vue

<template>
    <div>
      哈哈
    </div>
  </template>
  
  <style>

  </style>

浏览器中运行效果

8.运行命令

package.json中配置运行命令

 "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "build": "webpack",
    "dev": "webpack-dev-server"
  },

服务器端运行:npm run dev

打包命令:npm run build

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/350077.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

配置okta saml验证单点登录splunk

目标 使用okta作为splunk单点登录身份提供程序&#xff0c;通过saml身份验证配置&#xff0c;可实现通过okta平台账号单点登录splunk应用 环境准备 1. okta环境 首先在okta上注册一个账号&#xff0c;注册地址https://login.okta.com/signin/register/ &#xff0c;注册完成…

使用gaussian和antechamber拟合RESP电荷过程

使用gaussian和antechamber拟合RESP电荷过程 我们以甲烷为例子 使用gaussian和antechamber拟合RESP电荷的过程大致分为两步&#xff1a;首先通过gaussian计算得到esp电荷&#xff0c;然后使用antechamber拟合resp电荷. 构建分子的结构文件&#xff0c;并存为mol2文件 2 使用…

工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明

工业网关控制器CK-GW06-E01是一款工业级网关控制器&#xff0c;以太网通信接口&#xff0c;支持 EtherNet IP|Modbus TCP 工业协议。可实现一拖六&#xff0c;同时带有六组输入 检测 IO 和六组输出控制 IO。 本文将重点介绍工业网关控制器CK-GW06-E01与欧姆龙 PLC配置说明。 工…

正大国际期货:影响国际恒生指数期货价格波动的因素!

香港是世界第三大金融中心,是一个世界性的金融市场,恒生指数是反映香港股市价幅动趋势最有影响力的一种股价指数。那么有哪些因素会影响其波动价格呢&#xff1f;下面正大IxxxuanI详细来讲解一下&#xff01; 一、欧美股市的涨跌 恒生指数的交易遍布全球各国,由于时差的原因,…

【自学Python】一文读懂Python字符串是否是数字

Python字符串是否是数字 Python字符串是否是数字教程 在开发过程中&#xff0c;有时候我们需要判断一个 字符串 是否是 数字 形式&#xff0c;在 Python 中&#xff0c;判断字符串是否只由数字组成的函数为 isnumeric() 。 isnumeric() 函数只能判断 unicode 字符串&#xf…

FPGA时序约束与分析 --- 时序约束概述

本系列参考文献 — FPGA时序与约束分析-吴厚航 FPGA从综合到实现需要的过程如下&#xff1a;synth_design -> opt_design -> place-design -> phys_opt_design -> route_design 1、时序约束的理解 2、时序约束的基本路径 3、时序约束的步骤 4、时序约束的主要方法…

华为手表开发:WATCH 3 Pro(7)获取电量信息

华为手表开发&#xff1a;WATCH 3 Pro&#xff08;7&#xff09;获取电量信息初环境与设备文件夹&#xff1a;文件新增第二页面showBatteryInfo.hmlshowBatteryInfo.js修改首页 -> 新建按钮 “ 跳转 ”index.hmlindex.js 引用包&#xff1a;system.router首页效果点击结果初…

ChIP-seq 分析:Mapped 数据可视化(4)

1. Mapped reads 现在我们有了 BAM 文件的索引&#xff0c;我们可以使用 idxstatsBam() 函数检索和绘制映射读取的数量。 mappedReads <- idxstatsBam("SR_Myc_Mel_rep1.bam")TotalMapped <- sum(mappedReads[, "mapped"])ggplot(mappedReads, aes(x…

SpringAOP切面实例实现对数据过滤返回,SpringAOP切面实现对用户权限控制,通过@Around注解过滤修改方法返回值

文章目录需求内容:实现&#xff1a;步骤一&#xff1a;导入SpringAOP相关依赖pom.xml步骤二&#xff1a;自定义两个注解步骤三&#xff1a;需要用到的实体类**步骤四&#xff1a;切面具体实现**用法1.需要过滤返回值的方法添加注解FilterByUser2.数据Dto在需要过滤的字段添加Fi…

树与二叉树 总复习

一、树的定义 树是一个有n个&#xff08;n>0&#xff09;结点的有限集合。 如果n0&#xff0c;称为空树&#xff1b; 如果n>0&#xff0c;称为非空树&#xff0c;有且仅有一个特定的称为根Root的结点&#xff08;无直接前驱&#xff09; 如果n>1,除了根节点外&…

总结高频率Vue面试题

目录 什么是三次握手&#xff1f; 什么是四次挥手&#xff1f;&#xff08;close触发&#xff09; 什么是VUEX&#xff1f; 什么是同源----跨域&#xff1f; 什么是Promise&#xff1f; 什么是fexl布局&#xff1f; 数据类型 什么是深浅拷贝&#xff1f; 什么是懒加载&…

HTB打靶(Active Directory 101 Multimaster)

Nmap扫描 Starting Nmap 7.93 ( https://nmap.org ) at 2023-02-08 02:52 EST Stats: 0:00:51 elapsed; 0 hosts completed (1 up), 1 undergoing SYN Stealth Scan SYN Stealth Scan Timing: About 55.85% done; ETC: 02:54 (0:00:40 remaining) Nmap scan report for 10.129…

AcWing语法基础课笔记 第四章 C++中的数组

第四章 C中的数组 程序 逻辑 数据&#xff0c;数组是存储数据的强而有力的手段。 ——闫学灿 一维数组 数组的定义 数组的定义方式和变量类似。 数组的初始化 在main函数内部&#xff0c;未初始化的数组中的元素是随机的。 访问数组元素 通过下标访问数…

【正点原子FPGA连载】第十三章QSPI Flash读写测试实验 摘自【正点原子】DFZU2EG_4EV MPSoC之嵌入式Vitis开发指南

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第十三章QSPI Fl…

异构数据库同步方案

目录 1 概述 2 原理 3 参数 1 概述 将企业生产系统产生的业务数据实时同步到大数据平台&#xff0c;通过对业务数据的联机实时分析&#xff0c;快速制定或调整商业计划&#xff0c;提升企业的核心竞争力。 依据同步数据是否需要加工处理&#xff0c;采用不同的技术方案&am…

网页概念、常用浏览器及内核、Web标准

网页、常用浏览器及内核、Web标准一、网页1.1、什么是网页&#xff1f;1.2、什么是HTML?&#xff08;重点&#xff09;1.3、网页的形成&#xff1f;二、常用浏览器三、浏览器内核四、Web标准&#xff08;重点&#xff09;4.1 为什么需要Web标准&#xff1f;4.2 Web标准的构成一…

数模补充(4)灵敏度分析

一、概念 1.1基础概念 灵敏度分析是一种分析模型输出响应程度与模型输入参数变化之间关系的方法&#xff0c;通过对模型输入参数进行变化和分析&#xff0c;来评估模型输出结果的稳定性和可靠性&#xff0c;以及各个输入参数对输出结果的影响程度。 1.2常用模型 1.3基本流程…

springcloud+nacos+gateway案例

一、先搭建好springcloudnacos项目地址:https://javazhong.blog.csdn.net/article/details/128899999二、spring cloud gateway简述Spring Cloud Gateway 是Spring Cloud家族中的一款API网关。Gateway 建立在 Spring Webflux上&#xff0c;目标是提供一个简洁、高效的API网关&a…

FPGA解析串口协议帧4.0版本,移位寄存器实现,提供仿真文件以及源码

这里写目录标题1、前言2、4.0版本优势3、上板验证4、福利&#xff1a;工程代码的获取1、前言 FPGA解析串口协议帧3.0版本参考链接串口协议帧3.0版本 FPGA解析串口协议帧4.0版本&#xff0c;增加了错误重发功能&#xff0c;提供仿真文件以及源码 之前发布了FPGA解析串口协议帧3…

RMPE: Regional Multi-Person Pose Estimation (AlphaPose)阅读笔记

区域多人姿态估计 ICCV 2017 论文链接 代码链接 摘要&#xff1a; 野外多人姿态估计具有挑战性。sota人体检测器不可避免存在定位和识别误差&#xff0c;这些误差可能导致依赖人体检测器的单人姿态估计器&#xff08;SPPE&#xff09;的失败。本文提出了一种新的区域多人姿态估…