webpack: 是代码编译工具,有入口、出口、loader 和插件。 webpack: 是一个用于现代 JavaScript 应用程序的静态模块打包工具。
刚接触不久webpack这方面的总是会面临遇到各种哪个的bug和问题,搜集网上的资料,>少的可怜,刚出茅庐的自己很难找到解决的方案,总之会花费大部分的事件,浪费在这个>问题上,因为如果处理不了这个问题,后边的功能和逻辑就无法实现。
在不断的搜集和阅览中,终于搜到了这样的一句话
// import Vue from 'vue'
//原因:vue3中没有全局的vue "vue": "^3.2.33"
//解决方法:使用createApp
import {createApp} from 'vue';
查看自己项目下的package.json下vue的版本号为^3.2.33断定应该是vue3的版本,在项目下的node-modules目录下的vue文件的dist文件也没有找到vue.js的文件,因为实在找不到解决的方法,网上的残次不齐,也不知道说的是啥?机会是dist目录下的每一个js文件都尝试过,有的异常为
没有定义构造函数 没有定义function方法
直到我搜到这样的一句话,原来vue3中没有vue ,也就无法使用vue高级语法[也不知道说的对不对】
创建目录
- webpack
- dist
- src
- index.html
- main.js
- css
- images
- webpack.config.js
- package.jsopn
- node-modules
- package-lock.json
使用 npm init -y 初始化得到package.json文件
下载webpack必须的框架包
npm i webpack webpack-cli webpack-dev-server -D
下载 vue-loader
npm i vue-loader -D
下载 html-webpack-plugin 在内存中会创建虚拟html样式文件
npm i html-webpack-plugin -D
配置 dev 在package.json文件中配置dev
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "webpack-dev-server"
},
创建index.html内容
<body>
<div id="app">
<p>{{msg}}</p>
</div>
</body>
main.js文件配置
import {createApp} from 'vue';
createApp({
data() {
return {
msg: 'Hello Vue!'
}
}
}).mount('#app')
####### 配置webpack.config.js文件 ####### 配置
- entry 要打包文件的入口
- output 输出文件的相关配置
- devServer 配置webpack-dev-server相关命令配置
- module 指定解析各种文件loader模块
- {test:/.vue$/, use:“vue-loader”} 指定解析vue的loader
- plugins 插件模块
- new webpack.HotModuleReplacementPlugin() 热启动[有三步,请观代码顺序]
- new HtmlWebpackPlugin({}) 在内存中生成html页面的插件
- mode 必须指定环境模式[开发环境或者产品环境模式]
- resolve 指定相关格式文件的解析的js文件
const path = require('path');
const webpack = require('webpack');
var HtmlWebpackPlugin = require('html-webpack-plugin');
module.exports = {
entry:path.join(__dirname,'./src/main.js'),
output:{
filename:'bundle.js',
path:path.join(__dirname,'./dist')
},
devServer:{
open:true,
port:300,
hot:true
},
module:{
rules:[
{test:/\.(jpg|png|gif|bmp|jpeg)$/, use:'url-loader?esModule=false&limit=10*1024&name=[hash:8]-[name].[ext]' ,type: 'javascript/auto'},
{test:/\.vue$/, use:"vue-loader"}
]
},
plugins:[
new webpack.HotModuleReplacementPlugin(),
new HtmlWebpackPlugin({
title:'rd平台',
template:'./src/index.html',
filename: 'index.html',
showErrors: true,
inject: 'body',
chunks: ["common",'index']
})
],
mode: 'development',
resolve: {
alias: {
"vue$": "vue/dist/vue.esm-bundler.js"
}
}
}
测试 webpack 会在dist目录下创建bundle.js文件和index.html文件
开启 webpack-dev-server命令 npm run dev
在浏览器地址栏输入 http://loaclhost:300就能看到结果
|