cnpm init -y //生产package.json的文件
1-1 安装依赖
cnpm i webpack webpack-cli -S
1-2 配置
const webpack = require("webpack");const path = require("path");const config = {entry:path.resolve(__dirname,'src/main.js'), //入口文件output:{ //出口文件path:path.resolve(__dirname,'dist'),filename:'bundle.js'},mode:'development' //模式}module.exports = config;
//配置package.json文件{"scripts": {"private": true,//(删除main.js这一行)"build": "webpack --config webpack.config.js"}}
//运行npm run build
1-3 Loader
wepack自身只能处理js和json文件,加上loader后,能让wepack去处理非js(css)的文件。loader可以将所有类型的文件转换为webpack能够处理的有效模块。
- 项目加载css
- Tips:loader是配置在module中的—可以处理非js文件
```javascript const webpack = require(“webpack”); const path = require(“path”); const config = { entry:path.resolve(__dirname,’src/main.js’), //入口文件 output:{ //出口文件//安装依赖cnpm i style-loader css-loader -S
},path:path.resolve(__dirname,'dist'),filename:'bundle.js'
- module:{
- rules:[
- {
- test:/.css$/i,
- use:[‘style-loader’,’css-loader’]
- }
- ]
- },
mode:’development’ //模式
}
module.exports = config;
```javascript … +const HtmlWebpackPlugin = require(‘html-webpack-plugin’); const config = { ….<a name="7W1KA"></a>## 1-4 plugins 打包优化压缩```javascript//安装依赖cnpm i html-webpack-plugin -S//会自动生成index.html文件
- plugins:[
- new HtmlWebpackPlugin({
- title:”webpack-vue”
- })
- ],
mode:’development’ //模式
}
module.exports = config;
```javascript```javascript//安装依赖cnpm i clean-webpack-plugin -S//自动清除dist目录下不需要的文件
- const {CleanWebpackPlugin} = require(“clean-webpack-plugin”);
const config = {
…
plugins:[
...
- new CleanWebpackPlugin()
], mode:’development’ //模式 }<a name="JkQ9w"></a># 2 配置webpack-server目的:为了查看代码运行时的效果 <br />Tips:设置webpack.config.js之后,项目必须重新启动。```javascript//安装依赖cnpm i webpack-dev-server -S
const config ={...devServer:{contentBase:"./dist"port:8000,overlay:{errors:true,//可以将错误显示在页面上}}}
//配置package.json"scripts": {..."serve":"webpack serve --open"}
//运行npm run serve
2-1 source map
实现错误追踪module.exports = {devtool: 'inline-source-map'}
3 安装vue-loader
cnpm i vue vue-loader vue-template-compiler -S
const {VueLoaderPlugin} = require("vue-loader")module.exports = {module:{rules:[...{test:/\.vue$/,loader:'vue-loader'}]},plugins:[new HtmlWebpackPlugin({...+ template:path.resolve(__dirname,"public/index.html");}),+ new VueLoaderPlugin()]}
//main.jsimport App from './App.vue';import Vue from 'vue';new Vue({render:h=>h(App)}).$mount("#app");
4 配置图片
module.exports = {module:{rules:[{test:/\.(png|jpg|svg|gif|jpeg)$/i,type:'asset/resource'}]}}
npm run build //用来将项目打包,打包之后的项目就可以上传服务器了npm run serve/yarn serve //用来查看项目的运行效果
