webpack构建工具已经火了好几年,也是当下狠火狠方便的构建工具,我们没有理由不去学习。既然选择webpack就要跟着时代走,我们要追随大牛的步伐,大牛等等我。
一、webpack基础
- 在根目录使用npm init 命令创建package.json,创建过程中一路回车。
- 本地安装webpack命令:npm install webpack webpack-cli --save-dev 安装成功后写入package.js的devDependencies中,可以通过 npm node_modules/.bin/webpack -v 命令查看它的版本。
- 全局安装npm install -g webpack 不推荐全局安装 webpack。它会把你的项目锁定全局安装的版本,也可能导致不同的webpack版本中构建失败。
静态资源文件目录
- "color: #ff0000">二、webpack.config.js
const webpack = require('webpack'); module.exports = { mote:"development",//指当前的环境 /* development:开发环境 production:生产环境 none:不做任何处理 */ //入口文件,如果需求多个入口可改为对象 entry: './src/index.js', /* hot配置是否启用模块的热替换功能,devServer的默认行为是在发现代码被改后通过自动刷新整个页面来做到事实预览,然后设置hot后, 会在不刷新整个页面的情况下用新模块替换老模块来做到实时更新。 如果选用hot:true方式来达到热更新的效果需要引用webpack.HotModuleReplacementPlugin插件配合达到你需要的效果,另外推荐一 种简便的方式在package.json中scripts设置如下 "scripts": { "start": "webpack-dev-server --hot --inline", }, */ // 服务器环境 devServer: { hot: true, //建议使用第二种方案 启动服务使用命令 npm run start port:"8080",//端口默认8080,可以自行设置 host:"192.168.xx.xx", /* host配置devServer服务监听的地址,也可以使用localhost进行访问 浏览器输入192.168.xx.xx/index.html 简便方法在package.json中设置如下 "scripts": { "start": "webpack-dev-server --hot --inline ", }, */ }, //插件 plugins: [ //热加载插件 new webpack.HotModuleReplacementPlugin(), ], //输出 output: { //filename:输出的文件名,可以自定义一些规则 filename: '[name].bundle.js', //path,配置输出文件存放在本地的目录 path: path.resolve(__dirname, 'dist') } };
三、插件
1、HtmlWebpackPlugin
const HtmlWebpackPlugin = require('html-webpack-plugin') plugins: [ new HtmlWebpackPlugin({ // 打包输出HTML title: 'Hello World',//文件的标题 minify: { //minify 的作用是对 html 文件进行压缩 removeComments: true, // 移除HTML中的注释 collapseWhitespace: true, // 删除空白符与换行符 minifyCSS: true, // //是否压缩html里的css 默认值false; caseSensitive: true, //是否对大小写敏感,默认false ollapseWhitespace: true, //是否去除空格,默认false minifyJS: true, //是否压缩html里的js removeAttributeQuotes: true, //是否移除属性的引号 默认false removeComments: true, //是否移除注释 默认false emoveCommentsFromCDATA: true, //从脚本和样式删除的注释 默认false emoveEmptyAttributes: true, //是否删除空属性,默认false removeRedundantAttributes: true, //删除多余的属性 removeScriptTypeAttributes: true, //删除script的类型属性,在h5下面script的type默认值:text/javascript 默认值false }, filename: 'index.html', //输出的html的文件名称 template: 'index.html', //html模板在的文件路径 hash: true,//hash作用是给生成的js文件一个独特的hash值,默认值为false 被构建过后的html引用js效果如下 // <script type=text/javascript src=bundle.js"htmlcode">
const { CleanWebpackPlugin } = require('clean-webpack-plugin'); plugins: [ //该插件主要用于自动删除webpack里dist目录中已不需要的文件 new CleanWebpackPlugin() ]
官方介绍:
By default, this plugin will remove all files inside webpack's output.path directory, as well as all unused webpack assets after every successful rebuild
3、ExtractTextWebpackPlugin
先把我们需要的东西下载好
npm install webpack css-loader style-loader extract-text-webpack-plugin --save-dev
首先配置webpack,先不使用插件完成
module.exports = { module : { rules: [ { test: /\.css$/, use:[ { loader: "style-loader" }, { loader: "css-loader" } ] } ] } }
配置好之后在js入口文件中引入样式文件,打包查看打包结果bundle.js,会发现css被打包到了js里面,以字符串的形式存在。如果index.html中已引入打包后的bundle.js,使用浏览器打开index.html文件会发现css以style的形式被插到了head当中。
2.使用插件
const path = require('path'); const ExtractTextPlugin = require("extract-text-webpack-plugin"); const HtmlWebpackPlugin = require('html-webpack-plugin'); module.exports = { module : { rules: [ { test: /\.css$/, use : ExtractTextPlugin.extract({ fallback: "style-loader", use: "css-loader" }) } /* use: 指需要什么样的loader去编译文件 fallback: 编译后用什么loader来提取css文件 */ ] }, plugins: [ new ExtractTextPlugin("styles.css"), new HtmlWebpackPlugin({ // 关于HtmlWebpackPlugin上文有提到 title: 'extract-text-webpack-plugin', filename: 'index.html', template: path.resolve(__dirname, 'index.html'), inject : 'head' }) ] }
以上内容配置好之后打包查看,可以发现css文件以link的方式被引在index.html的head中。期间配合HtmlWebpackPlugin插件自动插入index.html中
P70系列延期,华为新旗舰将在下月发布
3月20日消息,近期博主@数码闲聊站 透露,原定三月份发布的华为新旗舰P70系列延期发布,预计4月份上市。
而博主@定焦数码 爆料,华为的P70系列在定位上已经超过了Mate60,成为了重要的旗舰系列之一。它肩负着重返影像领域顶尖的使命。那么这次P70会带来哪些令人惊艳的创新呢?
根据目前爆料的消息来看,华为P70系列将推出三个版本,其中P70和P70 Pro采用了三角形的摄像头模组设计,而P70 Art则采用了与上一代P60 Art相似的不规则形状设计。这样的外观是否好看见仁见智,但辨识度绝对拉满。
更新动态
- 罗大佑-无法盗版的青春套装版10CD【WAV】
- 张学友《意乱情迷》蜚声环球 2024 [WAV+CUE][1G]
- 柏菲《好歌30年特别版2CD》最好听的影视歌曲[低速原抓WAV+CUE][1G]
- 张学友《世纪10星·永恒篇》香港版[WAV+CUE][1G]
- 模拟之声慢刻CD《刘德海.琵琶独奏精逊【低速原抓WAV+CUE】
- Jamettone-18052023—improv(EDit)(2024)【FLAC】
- 【索尼精芽20首最棒的苏格兰歌曲集【FLAC】
- 池约翰C.J《少年白马醉春风2 动画原声带》[320K/MP3][26.67MB]
- 池约翰C.J《少年白马醉春风2 动画原声带》[FLAC/分轨][144.13MB]
- 陈致逸《幻想乐园 Fantasyland》[320K/MP3][120.54MB]
- 席卷全球最红舞曲《火辣辣DJ[英文版]》[DTS-WAV]
- 群星-席卷全球最红舞曲《火辣辣DJ中文版》【WAV】
- 模拟之声慢刻CD《声入人心[年度发烧人声严选]》[低速原抓WAV+CUE]
- 陈致逸《幻想乐园 Fantasyland》[FLAC/分轨][554.27MB]
- Rhymist / LusciousBB《年轮》[320K/MP3][76.52MB]