配置版本过时,谨慎参考
1.创建项目文件夹 用vscode打开。
2.ctrl+` 打开 vscode终端 用 npm 包管理命令 :npm init -y 回车。
3.在项目文件夹根目录创建 src (项目源代码) 和 dist (项目打包输出文件)
4.创建项目src/index.html,src/main.js
5.用npm本地安装webpack生产环境 :npm i webpack -d,别忘了还有npm i webpack-cli -d,请看手册https://www.webpackjs.com/guides/installation/。
测试node_modules.bin\webpack .\src\main.js -o .\dist\bundle.js 看看是否能成功打包
6.本地安装自动打包生产工具:npm i webpack-dev-server -d。
7.在项目根目录新建一个webpack的配置文件 webpack.config.js
8.本地安装webpack自动缓存插件:npm i html-webpack-plugin -d。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| var path = require('path');
var htmlWebpackPlugin = require('html-webpack-plugin');
module.exports = { entry: path.join(__dirname,'./src/main.js'), output: { path: path.join(__dirname,'./dist'), filename:'bundle.js' }, plugins:[ new htmlWebpackPlugin({ template: path.join(__dirname,'./src/index.html'), filename:'index.html' }) ], }
|
9.在package.json中添加脚本测试
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| { "name": "04.webpack", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "dev": "webpack-dev-server --open --port 3000 --contentBase src --hot" }, "keywords": [], "author": "", "license": "ISC", "dependencies": { "html-webpack-plugin": "^3.2.0", "webpack": "^4.39.2", "webpack-cli": "^3.3.7", "webpack-dev-server": "^3.8.0" } }
|
在终端中 npm run dev 测试
10.引入样式
本地安装loader:npm i style-loader css-loader -d
按需求安装:npm i less-loader less -d,npm i sass-loader node-sass -d
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| var path = require('path');
var htmlWebpackPlugin = require('html-webpack-plugin');
module.exports = { entry: path.join(__dirname,'./src/main.js'), output: { path: path.join(__dirname,'./dist'), filename:'bundle.js' }, plugins:[ new htmlWebpackPlugin({ template: path.join(__dirname,'./src/index.html'), filename:'index.html' }) ], module:{ rules:[ {test:/\.css$/,use:['style-loader','css-loader']}, {test:/\.less$/,use:['style-loader','css-loader','less-loader']}, ] } }
|
11.引入url资源:npm i url-loader file-loader -D
1 2 3 4 5 6 7 8
| module:{ rules:[ {test:/\.css$/,use:['style-loader','css-loader']}, {test:/\.less$/,use:['style-loader','css-loader','less-loader']}, {test:/\.scss$/,use:['style-loader','css-loader','sass-loader']}, {test:/\.(jpg|png|gif|bmp|jpeg)$/,use:'url-loader'}, ] }
|
12.引入字体库
{test:/.(ttf|eot|svg|woff|woff2)$/,use:'url-loader'},