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. 正則表達式 - C语言

    http://blog.csdn.net/pipisorry/article/details/37073843 sscanf/scanf正则使用方法 %[ ] 的使用方法:%[ ]表示要读入一个字符集 ...

  2. zookeeper 实现分布式锁安全用法

    zookeeper 实现分布式锁安全用法 标签: zookeeper sessionExpire connectionLoss 分布式锁 背景 ConnectionLoss 链接丢失 SessionE ...

  3. MySQL性能调优的10个方法 - mysql数据库栏目

    摘要: https://edu.aliyun.com/a/29036?spm=5176.11182482.related_article.1.hbeZbF 摘要: MYSQL 应该是最流行了 WEB ...

  4. HashSet代码分析

    HashSet (jdk 1.7)的继承关系如下: HashSet是使用HashMap实现的一个没有重复元素的集合.HashSet用法如下: HashSet<String> hashSet ...

  5. 单片机 MCU 中 stack 使用的探讨

    stack 的使用,是单片机开发中影响最大,但是最少被讨论的问题.而提及这个问题的地方,都是对这个问题含糊其辞. 今天花了点时间,使用最笨的办法,直接阅读汇编代码,来对这个问题就行探究,这里做一下记录 ...

  6. 关于Docker目录挂载的总结(转)

    关于Docker目录挂载的总结 Docker容器启动的时候,如果要挂载宿主机的一个目录,可以用-v参数指定. 譬如我要启动一个centos容器,宿主机的/test目录挂载到容器的/soft目录,可通过 ...

  7. Springboot+Mybatis整合PageHelper

    一.全部的gradle引入 // https://mvnrepository.com/artifact/com.github.pagehelper/pagehelper-spring-boot-sta ...

  8. 前端项目添加自定义icont图标步骤

    文章转自https://blog.csdn.net/weixin_36185028/article/details/53416185 这里就用到了两个文件,一个是icontfont.css,另外一个是 ...

  9. pip 安装出现超时问题的解决

    pip 安装出现超时问题的解决 我们在用默认的pip源进行安装python库时,会出现超时问题下载不了,如下图显示所示: 那么我们应该如何解决呢? 方法: 在自己电脑的  C:\Users\yanji ...

  10. 【经验总结】- IDEA无法显示Project目录怎么办

    1. 关闭IDEA 2.然后删除项目文件夹下的.idea文件夹 3.重新用IDEA工具打开项目 4.再次点击如下图即可搞定