webpack

官方:

https://webpack.js.org/

http://webpack.github.io/

中文:

https://www.webpackjs.com/

资料:

https://segmentfault.com/a/1190000006178770


学习入口:

官网----->1 中文文档-->指南

     2 立即开始

安装webpack:

1、3.x

安装 cnpm i -D webpack@3.8.1

卸载 npm un -D webpack

2、4.x

安装 cnpm i -D webpack webpack-cli


局部安装验证版本:

webpack -v 错误 —— 全局安装

1、node_modules/.bin/webpack -v

2、npx webpack -v

3、工程文件 package.json

"scripts": {
"test": "webpack -v"
}, 运行npm run test

webpack3 翻译器 ES6-->ES5 babel

webpack src dist

npx webpack js/index.js dist/index.bundle.js

文件不会被压缩!


webpack4 翻译器 ES6-->ES5 babel

webpack --mode=development src -o dist 正确的格式

npx webpack --mode=development js/index.js dist/index.bundle.js --->main.js

npx webpack --mode=development js/index.js --output dist/index.bundle.js

文件会被压缩!

简写:webpack --mode=development

前提条件:

1、源src 必须是 src/index.js

       输出: 默认 dist/main.js


配置文件: webpack.config.js

执行:webpack

指定执行某一个具体的文件: 必须带上 --config

webpack --config webpack.dev.config.js


loader:处理资源 从右往左进行处理
cnpm i -D style-loader css-loader

css-loader:加载css文件

style-loader:处理样式 页面生成style标签

sass:

cnpm i -D sass-loader node-sass

less:

cnpm i -D less-loader less


cnpm i -D url-loader file-loader

file-loader:处理文件 单纯的把文件复制到目标路径 重命名

url-loader 依赖 file-loader :把文件转成base64

exp:


module.exports = {
mode:"development",
entry:"./src/index.js", //引入模块 ./
output:{
path:`${__dirname}/dist/`, //必须是一个绝对路径
filename:"index.bundle.js"
},
module: {
rules: [
{
test: /\.css$/,
use: ['style-loader','css-loader']
},
//sass
{
test: /\.scss$/,
use: ['style-loader','css-loader','sass-loader']
},
//less
{
test: /\.less$/,
use: ['style-loader','css-loader','less-loader']
},
{
test: /\.(png|jp(e)?g|gif)$/,
use: ["url-loader"]
}
]
}
}

model:{ 模块、包
rules:[ //规则
{test:/正则/,use:[xxxx-loader]} use:使用什么 loader进行处理
]
} indes.js
import $ from "jquery";
import "./asset/1.css";
import img from "./asset/111.jpg" $(function(){
$("#div1").click(function(){
//$(this).addClass("active"); // alert(img); $(this).css({
width:"330px",
height:"495px",
background:`url(${img})`
});
});
});

res:




生成页面 index.html

cnpm i -D html-webpack-plugin

new HtmlWebpackPlugin()

new HtmlWebpackPlugin({
//title: 'My App',
template: 'public/index.html',用户模板文件
filename: 'index.html', 生成的页面 可以不写 默认就是index.html
hash:true 防止js/css缓存
})

ExtractTextWebpackPlugin 在 webpack4中被废弃 替换者 mini-css-extract-plugin

cnpm i -D mini-css-extract-plugin

mini-css-extract-plugin++应用场景只在开发阶段++!

++在生产阶段换成 style++


--watch 简写 -w 实时编译 问题 不能主动刷新页面
webpack-dev-server 服务器

不能实时编译,可以实时刷新页面

cnpm i -D webpack-dev-server

webpack.config.js

const webpack = require('webpack');
const path = require("path");
const HtmlWebpackPlugin = require('html-webpack-plugin');
const MiniCssExtractPlugin = require("mini-css-extract-plugin"); // webpack --mode=development src/index.js --output dist/main.js module.exports = {
mode:"development",
entry:"./src/index.js",//模块 ./
output:{
path:path.resolve(__dirname,"dist"),//绝对路径
filename:"main.js"
},
devServer: {
contentBase: "./dist", //资源目录 www/public
index: 'main.js',
host:"localhost",
port:9000,
open:true,// --open
hot: true,
compress: true, //gzip压缩
// proxy: {
// '/api': {
// target: 'https://other-server.example.com',
// secure: false
// }
// }
},
module: {
rules: [
// { test: /\.css$/, use: ["style-loader","css-loader"] },
{
test: /\.css$/,
use: [
MiniCssExtractPlugin.loader,
"css-loader"
]
},
{ test: /\.(png|jp(e)?g|gif|svg|icon)$/,use: ["file-loader"] },
]
},
plugins: [
new webpack.NamedModulesPlugin(),
new webpack.HotModuleReplacementPlugin(),
new webpack.BannerPlugin('版权所有,翻版必究'),
//new HtmlWebpackPlugin()
new HtmlWebpackPlugin({
template: 'public/index.html',
filename: 'index.html',
hash:true
}),
new MiniCssExtractPlugin({
filename: "[name].css",
chunkFilename: "[id].css"
}) ] }

css/url/file/babel/vue-loader

css分离(mini-css-extract-plugin)

HtmlWebpackPlugin

HtmlWebpackPlugin —— Clean...

babel

26.webpack 入门的更多相关文章

  1. Webpack 入门指南 - 3. Hello, Angular2!

    Webpack 入门指南 - 1.安装 Webpack 入门指南 - 2.模块 这一次,我们使用 Webpack 来打包 Angular 2 的应用. 与官方的 Hello, Angular 2 项目 ...

  2. webpack入门(2)

    webpack入门(2) ps:每个案例都是基于前一个案例改造的 webpack入门(1) 戳这里 案例源码戳这里 十二.ProvidePlugin 自动加载模块 new webpack.Provid ...

  3. 【一小时入门】webpack 入门指南

    什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...

  4. webpack入门(1)

    webpack入门(1) 源码戳这里 ps:每个案例对应相应的demo,例如"案例1"对应"demo1" 一.webpack基本功能及简单案例 安装webpac ...

  5. webpack入门教程之Hello webpack(一)

    webpack入门教程系列为官网Tutorials的个人译文,旨在给予想要学习webpack的小伙伴一个另外的途径.如有不当之处,请大家指出. 看完入门教程系列后,你将会学习到如下内容: 1.如何安装 ...

  6. webpack入门——webpack的安装与使用

    一.简介 1.什么是webpack webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. ...

  7. 一小时包教会 —— webpack 入门指南

    什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...

  8. Webpack 入门指南 - 2.模块

    这一次我们谈谈模块问题. 通常我们希望这个项目可以分为多个独立的模块,比如,上一次提高的 hello 函数,如果我们定义为一个模块,其它模块引用之后,直接调用就好了.在前端怎么使用模块呢?这可说来话长 ...

  9. Webpack 入门指南 - 1.安装

    Webpack 是目前流行的打包工具,如何安装它呢? 1. 安装 Node Js 首先,Webpack 是基于 NodeJs 的工具,你必须首先安装 NodeJs. NodeJs 仅仅只需要在你的系统 ...

随机推荐

  1. 修复恢复"可疑"的SQLServer数据库

    今天机房突然断电,DB连不上了,提示 无法打开数据库'MyDB'.恢复操作已将该数据库标记为 SUSPECT. 原因是断电导致DB文件损坏 通过SQL Server Management Studio ...

  2. hibernate JPA 使用懒加载时代理对象

    hibernate延迟加载代理对象实际对象读取方式 public static <T> T deproxy (T obj) { if (obj == null) return obj; i ...

  3. iOS10使用SecKeyCreateWithData读取公钥私钥

    在使用openssl命令生成RSA公钥私钥以后,当后端人员把密钥的字符串发给你: 首先要问清公钥私钥的密钥格式(PKCS1,PKCS8),密钥位数(1024,2048),然后在iOS10以后,使用苹果 ...

  4. TensorFlow实战Google深度学习框架10-12章学习笔记

    目录 第10章 TensorFlow高层封装 第11章 TensorBoard可视化 第12章 TensorFlow计算加速 第10章 TensorFlow高层封装 目前比较流行的TensorFlow ...

  5. js传递数组

    注意:数组不能直接作为参数传给后台,需要先用JSON处理成数组字符串,传到后台后再转回数组. var arr_str = JSON.stringify(array)

  6. cn_windows_10_enterprise_version_1703_updated_june_2017_x64_dvd_10720588.iso

    ed2k://|file|cn_windows_10_enterprise_version_1703_updated_june_2017_x64_dvd_10720588.iso|4959832064 ...

  7. SNF软件开发机器人-子系统-功能-功能类型(普通表改为树型表)

    功能类型(普通表改为树型表) 功能类型分为普通功能和树形功能.因为资源表中不存在ParentId字段,故只能将多表的主表改为树型表. 1.效果展示: 2.使用说明: (1)当需要用一张普通的资源表显示 ...

  8. cmder里ls、pwd、自定义的alias等一系列命令都无法使用

    win10下cmder很多命令history pwd无法使用,ls字体也没有颜色显示,其根本原因是win10下cmd控制台版本问题,切换回老版本就OK了

  9. 微信公众号平台上传文件返回错误代码:40005 invalid file type

    错误原因:文件类型(后缀名)不符合要求. 具体到笔者的情况是:在将 MultipartFile 类型转换为File 类型时,方法 File.createTempFile("filename& ...

  10. python serial 模块使用

    python3 开始, python 加入了 serial 操作串口的模块 模块的引用 import serial 串口的申请 serial_com1 = serial.Serial("/d ...