https://www.webpackjs.com/guides/getting-started/
概念:模块化打包器 做用: 1.将浏览器不识别的语法 转换成浏览器识别的语法 eg:typeScript scass less 等css预处理器。 2.模块化,将复杂的程序细化为小的文件 还能够: css解析,js解析,img解析,html压缩,代码合并。gulp所能作的webpack都能作。 工做流程: 把你的项目当作一个总体,经过一个给定的文件(入口文件index.js),webpack找个这个入口文件所依赖的全部文件 经过loader进行打包,打包成一个或者多个浏览器可识别的js文件 loader 第三方包,处理各类模块 处理不一样的模块,用不一样的loader
没有可比性
webpack是模块打包机(功能更多)
gulp是前端自动化工具
主要作项目的部署工做
1、全局安装webpack(安装一次便可) cnpm install webpack@3.5.3 -g 2、建立文件夹 并初始化文件夹 npm init -y 3、局部安装webpack cnpm install webpack@3.5.3 --save-dev 4、建立 webpack.config.js文件 5、建立 src入口文件夹 dist出口文件夹 本身建立入口文件:src/index.js 6、安装处理css的loader cnpm install --save-dev style-loader css-loader sass-loader node-sass 7、处理js的loader cnpm install --save-dev @babel/core babel-loader @babel/preset-env @babel/preset-react 8、插件(帮咱们生成html模板,同时帮咱们自动引入你想引入的文件) cnpm install html-webpack-plugin --save-dev 9、热更新 服务器(必定要写准版本号) cnpm install webpack-dev-server@2 --save-dev 在page.json的scripts中自定义运行的命令,(npm run dev)会自动打开浏览器 "dev":"webpack-dev-server --open", 含义:经过webpack启服务,webpack会默认找到src/的文件,--open会自动打开浏览器 webpack.config.js
//引入node的核心模块 const path = require("path"); //引入模板 const HtmlWebpackPlugin = require ("html-webpack-plugin"); //配置路径(下面会用到) const PATH = { app:path.join(__dirname,"./src/index.js"),//入口文件路径 build:path.join(__dirname,"./dist")//出口文件路径 } //下面的代码都是webpack的配置项,module.exports:是node中内置的一个导出模块的方法 module.exports = { //入口文件 entry:{ //这里面的key值决定了下面name的名字叫什么 app:PATH.app, }, //出口文件 output:{ filename:"[name].js",//app.js path:PATH.build//出口文件路径 }, //对模块的处理,用loader进行处理(对浏览器不识别的语法进行处理,eg:es6,.vue文件,.react文件等等都要在module中进行处理),将模块进行打包 module:{ rules:[ { //若是有.js文件,用下面的loader进行处理 test:/\.js$/, use:{ loader:"babel-loader", options:{ //若是在.js文件中遇到了es6代码,则用@babel/env进行处理,若是遇到了react代码,则用@babel/react进行处理 presets:["@babel/env","@babel/react"] } } }, { //若是有.css文件或者.scss文件,则用下面的loadr进行处理 test:/\.(css|scss)$/, use:["style-loader","css-loader","sass-loader"]//loader的执行顺序是从下至上,从右至左 //eg:若是遇到了sass文件,则先执行scss-loader文件,而后在向左执行 } //loader是第三方的包,要进行下载 ] }, //webpack全部的插件使用位置 plugins:[ new HtmlWebpackPlugin({ //出口的index.html文件 filename:"index.html",//当前webpack会根据(下面的)模板生成index.html文件(该index.html文件在dist文件夹中,为出口文件,打包后会自动生成) //模板文件 template:"./index.html", //./index.html为本身在根目录下建立的模板文件(本身手动建立的模板文件,在项目根目录下) //数据和模板进行结合 title:"笑笑笑", arr:["李湘","王楠","张三"] }) ] }