使用webpack打包vue项目

article/2025/9/24 15:10:22

使用webpack打包vue项目

  1. 安装webpack工具,安装方式有两种:全局安装(命令:npm install -g webpack webpack-cli)以及安装在项目中,这里使用第二种:

    //在项目中安装,这里的-D表示运用到开发(development)环境
    npm install -D webpack webpack-cli
    
  2. 在项目根目录新建一个webpack.config.js文件,配置打包时候需要的一些插件。**作用: 指示 webpack 干那些活(当你运行 webpack 指令时, 会加载里面的配置)**添加代码如下:

const path = require('path') // 引用path模块
module.exports = {  // 这里是commrnt.js语法// 入口文件entry:"./src/main.js",// 打包后的出口文件output:{// 输出的路径  是绝对路径(导入path模块) 这里是用node来做的path:path.resolve(__dirname,'build'),// 输出的文件名称filename:'build.js',},//配置webpack开发服务功能devServer:{contentBase: "./src", //本地服务器所加载的页面所在的目录host: "localhost",inline: true, //实时刷新compress: true,port: 8080,},mode:"development"
}
  1. 在package.json文件中配置打包命令:
    在这里插入图片描述

    之后就可以使用npm run build命令对整个vue项目进行打包了。

  2. 配置Loaders

    上面给出的webpack.config.js的内容还不完整,所以会报错。这里附上官网地址,官网给出的解释如下:

在这里插入图片描述
意思是webpack只能打包JavaScript和JSON文件。Loaders允许webpack处理其他类型的文件,Loaders有两个属性:test属性标识要转换的文件;use属性指示应该使用哪个loader(加载器)进行转换。而我们的项目是vue工程,肯定包括.vue文件和html文件,那么如何让webpack解析.vue文件以及html文件呢?首先看个官网例子就大概能清楚怎么解析.vue文件了。

在这里插入图片描述

4.1 解析.vue文件

module.rules允许我们在webpack配置中指定多个类型的loaders。首先,按照官网提示,首先下载需要的vue-loader,在项目终端执行命令:

npm install --save-dev vue-loader

然后在webpack.config.js中使用该loader:

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

还要加上:

const VueLoaderPlugin = require('vue-loader/lib/plugin')module.exports = {//...plugins:[new VueLoaderPlugin(),]//...
}

像下图这样:
在这里插入图片描述

不然会报错:ERROR in ./src/App.vue Module Error (from ./node_modules/vue-loader/lib/index.js): vue-loader was used without the corresponding plugin. Make sure to include VueLoaderPlugin in your webpack config.

原因:

官方在vue-loader15以上必须要配合插件使用

信心满满地以为这次马到成功,结果还是报错:

Module parse failed: Unexpected character ‘#’ (46:0) File was processed with these loaders:./node_modules/vue loader/lib/index.js You may need an additional loader to handle the result of these loaders.
在这里插入图片描述

解决办法

vue-loader@15.*之后除了必须带有VueLoaderPlugin 之外,还需另外单独配置css-loader。

所以在终端执行命令npm install --save-dev css-loader,再在webpack.config.js里面加上:

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

在这里插入图片描述

还有很多类型的文件解析loader,可以根据官网文档loader部分下载相应的loader,并在webpack.config.js里进行使用。一般只要报错,就是版本问题,可上网搜索解决办法。

4.2解析html

跟上面同样的步骤,下载html-loader,再在webpack.config.js使用即可,但是也需要配合plugin使用。所以需要在webpack.config.js加入以下内容:

const HtmlWebpackPlugin = require("html-webpack-plugin")
//...plugins:[//...new HtmlWebpackPlugin({template: path.resolve(__dirname, './public/index.html')})],

4.3图片资源打包(.png/.jpg/.gif)
我的项目中还有图片资源需要打包,所以还需要下载url-loader,并在相应部分添加:

 {// 处理图片资源test: /\.jpg|png|gif$/,// 只使用一个loader处理,写法如下:// 下载 url-loader 和 file-loaderloader:'url-loader',// loader的配置可以通过option来配置options: {// 图片大小小于12kb,就会base64处理// 通常我们只会对8-12kb以下的图片进行base64处理// 优点:减少请求数量(减轻服务器压力)// 缺点:图片体积会更大(文件请求速度更慢)limit: 12 * 1024}}

4.4多个js文件打包成一个文件
项目里面有多个js需要打包成一个js文件,必须使用模块化开发方式,需要通过一个集合js的文件,将其他各个的js文件模块,进行集中引入。(参考了博客1和博客2)
在这里插入图片描述
我就新建了一个blocklyTools.js文件将那些分散的.js文件引用进去
在这里插入图片描述
再将新建的blocklyTools.js写到入口文件处,最后连同main.js编译成一个build.js文件:
在这里插入图片描述

最终webpack.config.js的配置内容如下:

const path = require('path') // 引用path模块
const HtmlWebpackPlugin = require("html-webpack-plugin")
const VueLoaderPlugin = require('vue-loader/lib/plugin')
module.exports = {  // 这里是commrnt.js语法// 入口文件entry:["./src/main.js","./src/blocklyTools.js"],// 打包后的出口文件output:{// 输出的路径  是绝对路径(导入path模块) 这里是用node来做的path:path.resolve(__dirname,'build'),// 输出的文件名称filename:'build.js',},mode:"development",module: {rules: [{ test: /\.vue$/, use: 'vue-loader' },{ test: /\.css$/, use: ['style-loader','css-loader'] },{// 处理图片资源test: /\.jpg|png|gif$/,// 只使用一个loader处理,写法如下:// 下载 url-loader 和 file-loaderloader:'url-loader',// loader的配置可以通过option来配置options: {// 图片大小小于12kb,就会base64处理// 通常我们只会对8-12kb以下的图片进行base64处理// 优点:减少请求数量(减轻服务器压力)// 缺点:图片体积会更大(文件请求速度更慢)limit: 12 * 1024}},],},plugins:[new VueLoaderPlugin(),new HtmlWebpackPlugin({template: path.resolve(__dirname, './public/index.html')})],
}

终于完结,撒花!!!!!!!!!!!!!!!!!!!!!!


http://chatgpt.dhexx.cn/article/kd0IAx7d.shtml

相关文章

Idea 2017.3.+永久破解方法

一、下载Intellij IDEA2017.3.5x64旗舰版 去官网下载此处不赘述 二、下载破解jar包 链接在此http://idea.lanyus.com/jar/JetbrainsCrack-2.7-release-str.jar 三、打开安装好的IDEA路径下的bin目录 将下载好的jar包复制进来 例如 四、修改bin目录下的两个文件 idea.exe…

InetlliJ IDEA 2017破解(亲测,可用)

1.InetlliJ安装好后,启动,至License Activation界面; 2.选择License server; 3.在License server address中填入 http://idea.imsxm.com/

Intellij IDEA2017安装破解

IntelliJ IDEA(2017)安装和破解 IDEA 全称 IntelliJ IDEA,是Java语言开发的集成环境,IntelliJ在业界被公认为最好的java开发工具之一,尤其在智能代码助手、代码自动提示、重构、J2EE支持、各类版本工具(Git、svn、gith…

idea 2017 破解 可以使用

新版本的 自从升级到idea2017.3之后,之前的license server破解方法貌似已失效.于是找到大神用的破解插件,很好很强大. 安装好idea之后不要打开软件,从http://idea.lanyus.com/下载破解插件,这里面的插件是进行更新的,可能已经不是下面的文件名了&#xf…

IntelliJ idea2017 安装破解

下载 idea的安装包可以去官网下载,地址:IDEA各个历史版本请点击下载,选择自己需要的版本进行下载,本人下载的是ideaIU-2017.3.6.exe版本专业版。 安装 1、开始安装, 双击ideaIU-2017.3.6.exe,运行安装文…

intelliJ idea 2017破解

一、先进入Intellij IDEA的官网:https://www.jetbrains.com,下载安装 二、破解。 网上的破解方法较多,总结下来大概有下面几种办法供大家作为参考 声明:破解用于学习和试用,如果有经济条件的话,请支持…

idea 2017 破解方法

一、先进入Intellij IDEA的官网:https://www.jetbrains.com,下载安装 二、破解。 网上的破解方法较多,总结下来大概有下面几种办法供大家作为参考 声明:破解用于学习和试用,如果有经济条件的话,请支持…

IDEA 2017破解补丁方法

本文使用破解方式注册。 下载破解文件JetbrainsCrack-2.6.2.jar 下载地址: http://download.csdn.net/detail/gnail_oug/9824630 http://idea.lanyus.com/ 开始破解 一、将下载的 JetbrainsCrack-2.6.2.jar 破解补丁放在你的安装idea下面的bin的目录下面&#xff0…

INTELLIJ IDEA 2017 破解教程(2018也可以!)

INTELLIJ IDEA 破解教程 我们一般都用licence server来激活idea,网上传闻较广的licence server是 http://idea.iteblog.com/key.php,但是该server在2017年12月后就失效了,故我们现在不用licence server,直接破解吧! …

IDEA 2017 破解 license 激活

IDEA 2017 破解 license 激活 转自:http://blog.csdn.net/zhangwenwu2/article/details/54948959 进入ide主页面,help-register-license server,然后输入 http://idea.iteblog.com/key.php(注意:php要小写)即可~ 如下图…

IDEA 2017 破解教程(2018也可以)

点击 安装教程 获取安装详细步骤。 补充: 这一行是破解的jar包(JetbrainsCrack-2.7-release-str.jar)所在路径,本人的这个jar包已下载(在安装教程链接里面有下载地址)。 而且,这么配是错的。应…

intelliJ IDEA 2017 破解方法

原地址:http://blog.csdn.net/u013673242/article/details/72243066?utm_sourceitdadao&utm_mediumreferral 本文使用破解方式注册。 下载破解文件JetbrainsCrack-2.6.2.jar 下载地址: http://download.csdn.net/detail/gnail_oug/9824630 http://…

GAN(对抗生成网络)原理及数学推导

本文主要涉及GAN网络的直观理解和其背后的数学原理。 参考课程: 计算机视觉与深度学习 北京邮电大学 鲁鹏 概述 在所有生成模型中,GAN属于 “密度函数未知,直接硬train” 的那一类,和密度函数可定义的PixelRNN/CNN以及变分自编码…

对抗生成网络GAN系列——GANomaly原理及源码解析

🍊作者简介:秃头小苏,致力于用最通俗的语言描述问题 🍊往期回顾:对抗生成网络GAN系列——GAN原理及手写数字生成小案例   对抗生成网络GAN系列——DCGAN简介及人脸图像生成案例   对抗生成网络GAN系列——AnoGAN原…

强化学习和生成对抗网络

1. 强化学习的定义 强化学习(reinforcement learning)是机器学习的一个重要分支,是一门多领域交叉学科,它的本质是自行解决决策问题,并且能进行连续决策。 强化学习有四个主要组成部分∶ 1.代理(Agent&…

对抗生成网络(GAN)学习笔记

生成模型与判别模型 判别模型:由数据直接学习决策函数Yf(X)或条件概率分布P(Y|X)作为预测模型,即判别模型。判别方法关心的是对于给定的输入X,应该预测什么样的输出Y。 生成模型:由数据学习联合概率分布P(X,Y), 然后由P(Y|X)P(X…

生成对抗网络GAN

1. 概述 生成对抗网络GAN(Generative adversarial nets)[1]是由Goodfellow等人于2014年提出的基于深度学习模型的生成框架,可用于多种生成任务。从名称也不难看出,在GAN中包括了两个部分,分别为”生成”和“对抗”&am…

深度卷积生成对抗网络

理解与学习深度卷积生成对抗网络 一.GAN 引言:生成对抗网络GAN,是当今的一大热门研究方向。在2014年,被Goodfellow大神提出来,当时的G神还是蒙特利尔大学的博士生。据有关媒体统计:CVPR2018的论文里,有三…

【论文阅读】PU-GAN:点云上采样的对抗生成网络

【论文阅读】PU-GAN:点云上采样的对抗生成网络 在本文中,作者提出了一种点云上采样的对抗网络模型,那么什么是点云的上采样任务呢? 简单来说,点云上采样任务就是输入稀疏点云,输出稠密点云,同时…

生成对抗网络——CGAN

1.生成模型原理 1)CGAN的原理 传统的GAN或者其他的GAN都是通过一堆的训练数据,最后训练出了G网络,随机输入噪声最后产生的数据是这些训练数据类别中之一,我们提前无法预测是那哪一个? 因此,我们有的时候…