不知道该写啥QAQ 2020-11-12
使用webpack构建web项目以及热部署插件的使用,按以下步骤,能帮助你快速构建和理解~
详细学习还得靠官方文档!
一,基础构建部分
大前提!你得先安装了Node.js此处不赘述。
1,创建一个文件夹
2,在当前文件夹子下打开命令行工具
3,项目初始化(创建package.json文件)
npm init -y
4,安装依赖
版本搭配如下:
"devDependencies": { "webpack": "^4.17.1", "webpack-cli": "^3.3.9", "webpack-dev-server": "^3.8.2", }
复制粘贴到【命令行工具】回车,安装依赖以上依赖,会自动在package.json写入上述依赖。
npm install webpack@^4.17.1 webpack-cli@^3.3.9 webpack-dev-server@^3.8.2 --save-dev
显示安装完成:
5,补充一个依赖-插件:
用途:如果没有此插件需要我们手动给index.html文件引入 bundle.js。使用此插件我们将会自动在打包的时候创建index.html,且无须关心bundle.js的文件路径。
复制粘贴到【命令行工具】回车
npm install html-webpack-plugin --save-dev
插件如何配置使用,html-webpack-plugin官方说明文档
此时查看文件夹内容如下:
6,补充文件结构:
7,补充webpack.config.js的内容:
webpack官方说明文档整理出来给你后续自己补:
1,webpack的基础配置
2,webpack-dev-server的官方说明文档
3,html-webpack-plugin官方说明文档
// webpack.config.js const path = require('path'); const htmlWebpackPlugin = require("html-webpack-plugin"); module.exports = { entry: './src/main.js',//定义入口文件 output: { filename: 'bundle.js',//定义输出文件名称 path: path.resolve(__dirname, 'dist')//定义输出文件路径 }, devServer: {//配置webpack-dev-server(开发环境用的热部署) contentBase: "./dist",//定义默认打开路径,会自动寻找该路径下的index.html文件。 host:"localhost",//定义主机 port:8000,//定义端口号 open:true//定义是否自动打开页面 }, plugins: [ new htmlWebpackPlugin()//配置此插件会自动生成一个index.html并且自动引入bundle.js从而我们无需关心bundle.js的路径问题。 ] };
在main.js文件编写测试代码。
document.write("hello webpack!!")
二,测试部分
测试打包到本地
注意:若不使用html-webpack-plugin则需要在dist目录下的index.html里手动引入js文件。
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script src="bundle.js"></script> </head> <body> </body> </html>
终端输入:webpack
打包成功后,此时dist目录下会多一个,bundle.js文件,
若使用html-webpack-plugin插件其实index.html会自动创建并且覆盖原先我自己创建的index.html。
打开dist目录下的index.html文件。查看测试结果
测试打包到虚拟服务器内存
大家都知道的小技巧~
在package.json文件下配置下webpack-dev-server的快捷键。
配置完成后就可以在终端使用:npm run dev 进行打包了。
自动打开页面~注意看地址栏与上边本地打开的区别。
到这里,已经做好了基本的搭建了。
踩过的坑:
不指定版本号直接安装以下依赖:
webpackwebpack-cliwebpack-dev-server
npm install webpack webpack-cli webpack-dev-server --save-dev
使用热部署(webpack-dev-server)会出现如下报错:
Error: Cannot find module 'webpack-cli/bin/config-yargs'
出现该报错的小伙伴可以尝试文章中提到的搭配的版本~
webpack默认只能打包json模块和js模块,对于其他模块的打包例如css,图片,等需要借助于相应的loader插件~下次有机会继续分享。