从零配置webpack-vue项目(2)

本文详细介绍了如何配置Webpack的dev和prod环境,包括处理Vue.js、CSS、JS、图片、字体等文件,使用HotModuleReplacementPlugin进行热更新,以及如何整合vue-loader、html-webpack-plugin和clean-webpack-plugin。还涉及了package.json中的脚本管理和vue应用的搭建过程。
摘要由CSDN通过智能技术生成

项目文件夹 新建 webpack.dev.js配置

module.exports={

entry:{

index:‘./src/main.js’,

},

output:{ //导出文件配置

path:path.join(__dirname,‘dist’), //目录文件夹

filename:‘bundle.[hash].js’ //打包后的文件名 加一串hash用于版本控制

},

mode:“development”, //开发环境

module:{

rules:[

{

test:/.css$/,

loader:‘style-loader!css-loader’

},

{

test:/.(png|svg|jpg|gif)$/,

use:[

‘file-loader’

]

},

{

test:/.(woff|woff2|eot|ttf|otf)$/,

use:[

‘file-loader’

]

},

{

test:/.js$/,

use:‘babel-loader’

},

]

},

}

配置:

const webpack = require(‘webpack’)

plugins:[

new webpack.HotModuleReplacementPlugin() 插件引入

],

//devServer配置

devServer:{

contentBase:‘./dist’,

hot:true

}

package.json修改:

“scripts”: {

“test”: “echo “Error: no test specified” && exit 1”,

“build”: “webpack --config webpack.prod.js”,

“dev”: “webpack-dev-server --config webpack.dev.js --open” //热更新

},

运行npm run dev 入口项目自动打开 更改数据刷新后即可看到变化

打包vue文件:

npm i vue-loader vue-router vue-template-compiler vuex vue

webpack.prod.js 和 webpack.dev.js 里面配置:

const VueLoaderPlugin = require(‘vue-loader/lib/plugin’)

{

test:/.vue$/,

loader:‘vue-loader’

}

plugins:[

new VueLoaderPlugin()

],

src下面新建app.vue

{{text}}

创建main.js入口文件:

import Vue from ‘vue’

import App from ‘./app.vue’

const root = document.createElement(‘div’)

document.body.appendChild(root)

new Vue({

// h是generate api參數

render:(h)=>h(App)

}).$mount(root)

src下创建index.html:

Document
将vue挂载到根节点

打包html文件:

npm i html-webpack-plugin -D

webpack.prod.js 和 webpack.dev.js 里面配置:

const HtmlWebpackPlugin = require(‘html-webpack-plugin’)

new HtmlWebpackPlugin({

template:‘./src/index.html’

})

打包后自动清理覆盖之前文件:

npm i clean-webpack-plugin -D

const { CleanWebpackPlugin } = require(“clean-webpack-plugin”);

plugins:[

new CleanWebpackPlugin(),

],

打包less文件:

npm i less less-loader -D

{

test:/.less$/,

use:[

‘style-loader’,

‘css-loader’,

‘less-loader’

]

},

最后的文件配置 ,全部代码:

webpack.prod.js

const path = require(‘path’) //需要引入node模块

const webpack = require(‘webpack’)

const VueLoaderPlugin = require(‘vue-loader/lib/plugin’) //vue插件

const HtmlWebpackPlugin = require(‘html-webpack-plugin’) //html插件

const { CleanWebpackPlugin } = require(“clean-webpack-plugin”); //自动清理打包后文件插件

module.exports={

entry:{

index:‘./src/main.js’,

},

output:{ //导出文件配置

path:path.join(__dirname,‘dist’), //目录文件夹

filename:‘bundle.[hash].js’ //打包后的文件名 加一串hash用于版本控制

},

mode:“development”, //开发环境

module:{

rules:[

{

test:/.css$/,

loader:‘style-loader!css-loader’

},

{

test:/.less$/,

use:[

‘style-loader’,

‘css-loader’,

‘less-loader’

]

},

{

test: /.styl$/,

use: [

‘style-loader’,

‘css-loader’,

‘stylus-loader’

]

},

{

test:/.(png|svg|jpg|gif)$/,

use:[

‘file-loader’

]

},

{

test:/.(woff|woff2|eot|ttf|otf)$/,

use:[

‘file-loader’

]

},

{

test:/.js$/,

use:‘babel-loader’

},

{

test:/.vue$/,

loader:‘vue-loader’

}

]

},

plugins:[

new webpack.HotModuleReplacementPlugin(),

new VueLoaderPlugin(),

new HtmlWebpackPlugin({

template:‘./src/index.html’

}),

new CleanWebpackPlugin(),

],

//devServer配置 在package.json配置

devServer:{

contentBase:‘./dist’, //打开目录为dist下

hot:true //热更新开启

}

}

webpack.dev.js

const path = require(‘path’) //需要引入node模块

const webpack = require(‘webpack’)

const VueLoaderPlugin = require(‘vue-loader/lib/plugin’) //vue插件

const HtmlWebpackPlugin = require(‘html-webpack-plugin’) //html插件

const { CleanWebpackPlugin } = require(“clean-webpack-plugin”); //自动清理打包后文件插件

module.exports={

entry:{

index:‘./src/main.js’,

},

output:{ //导出文件配置

path:path.join(__dirname,‘dist’), //目录文件夹

filename:‘bundle.[hash].js’ //打包后的文件名 加一串hash用于版本控制

},

mode:“development”, //开发环境

module:{

rules:[

{

test:/.css$/,

loader:‘style-loader!css-loader’

},

{

test:/.less$/,

use:[

‘style-loader’,

‘css-loader’,

‘less-loader’

]

},

{

test: /.styl$/,

use: [

‘style-loader’,

‘css-loader’,

‘stylus-loader’

]

},

{

test:/.(png|svg|jpg|gif)$/,

use:[

‘file-loader’

]

},

{

test:/.(woff|woff2|eot|ttf|otf)$/,

use:[

‘file-loader’

]

},

{

test:/.js$/,

use:‘babel-loader’

},

{

test:/.vue$/,

loader:‘vue-loader’

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

资料领取方式:点击这里获取前端全套学习资料

css源码pdf

JavaScript知识点
零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!**

[外链图片转存中…(img-kLYu0rr2-1713058178766)]

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)

最后

javascript是前端必要掌握的真正算得上是编程语言的语言,学会灵活运用javascript,将对以后学习工作有非常大的帮助。掌握它最重要的首先是学习好基础知识,而后通过不断的实战来提升我们的编程技巧和逻辑思维。这一块学习是持续的,直到我们真正掌握它并且能够灵活运用它。如果最开始学习一两遍之后,发现暂时没有提升的空间,我们可以暂时放一放。继续下面的学习,javascript贯穿我们前端工作中,在之后的学习实现里也会遇到和锻炼到。真正学习起来并不难理解,关键是灵活运用。

资料领取方式:点击这里获取前端全套学习资料

[外链图片转存中…(img-1fL4yVhY-1713058178767)]

[外链图片转存中…(img-yOCDGPCt-1713058178767)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值