26.webpack 入门
webpack
官方:
https://webpack.js.org/
http://webpack.github.io/
中文:
资料:
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 入门的更多相关文章
- Webpack 入门指南 - 3. Hello, Angular2!
Webpack 入门指南 - 1.安装 Webpack 入门指南 - 2.模块 这一次,我们使用 Webpack 来打包 Angular 2 的应用. 与官方的 Hello, Angular 2 项目 ...
- webpack入门(2)
webpack入门(2) ps:每个案例都是基于前一个案例改造的 webpack入门(1) 戳这里 案例源码戳这里 十二.ProvidePlugin 自动加载模块 new webpack.Provid ...
- 【一小时入门】webpack 入门指南
什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...
- webpack入门(1)
webpack入门(1) 源码戳这里 ps:每个案例对应相应的demo,例如"案例1"对应"demo1" 一.webpack基本功能及简单案例 安装webpac ...
- webpack入门教程之Hello webpack(一)
webpack入门教程系列为官网Tutorials的个人译文,旨在给予想要学习webpack的小伙伴一个另外的途径.如有不当之处,请大家指出. 看完入门教程系列后,你将会学习到如下内容: 1.如何安装 ...
- webpack入门——webpack的安装与使用
一.简介 1.什么是webpack webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. ...
- 一小时包教会 —— webpack 入门指南
什么是 webpack? webpack是近期最火的一款模块加载器兼打包工具,它能把各种资源,例如JS(含JSX).coffee.样式(含less/sass).图片等都作为模块来使用和处理. 我们可以 ...
- Webpack 入门指南 - 2.模块
这一次我们谈谈模块问题. 通常我们希望这个项目可以分为多个独立的模块,比如,上一次提高的 hello 函数,如果我们定义为一个模块,其它模块引用之后,直接调用就好了.在前端怎么使用模块呢?这可说来话长 ...
- Webpack 入门指南 - 1.安装
Webpack 是目前流行的打包工具,如何安装它呢? 1. 安装 Node Js 首先,Webpack 是基于 NodeJs 的工具,你必须首先安装 NodeJs. NodeJs 仅仅只需要在你的系统 ...
随机推荐
- ASP.NET微信公众号获取AccessToken
access_token是公众号的全局唯一接口调用凭据,公众号调用各接口时都需使用access_token.开发者需要进行妥善保存.access_token的存储至少要保留512个字符空间.acces ...
- BIM轻量化助力建筑业迈向BIM+时代
多年以来,BIM一直是曲高和寡,仅仅在建筑圈内孤芳自赏.我们花那么多心思建了那么多BIM模型,如果仅仅在建筑圈内使用,未免暴殄天物.如何充分发掘BIM的价值,让更多的受众从BIM中受益,这是我们亟待解 ...
- NYOJ127 星际之门(一)【定理】
星际之门(一) 时间限制:3000 ms | 内存限制:65535 KB 难度:3 描写叙述 公元3000年,子虚帝国统领着N个星系,原先它们是靠近光束飞船来进行旅行的,近来,X博士发明了星际之门 ...
- 一步步教你轻松学主成分分析PCA降维算法
一步步教你轻松学主成分分析PCA降维算法 (白宁超 2018年10月22日10:14:18) 摘要:主成分分析(英语:Principal components analysis,PCA)是一种分析.简 ...
- 时间mysql
查询一天/今天: select * from table where to_days(column_time) = to_days(now()) select * from table where d ...
- 【C++】C++中的函数
目录结构: contents structure [-] 简介 可变形参的函数 initializer_list形参 省略符形参 main函数处理命令行选项 函数指针与函数引用 inline内联函数 ...
- top 命令
首先介绍top中一些字段的含义: VIRT:virtual memory usage 虚拟内存1.进程"需要的"虚拟内存大小,包括进程使用的库.代码.数据等 2.假如进程申请100 ...
- Java Socket 通信实例 - 转载
基于Tcp协议的简单Socket通信实例(JAVA) 好久没写博客了,前段时间忙于做项目,耽误了些时间,今天开始继续写起~ 今天来讲下关于Socket通信的简单应用,关于什么是Socket以及一些 ...
- curl模拟访问已经存在的cookie
curl 'http://i.meituan.com/brunch/order?status=2' -H 'Pragma: no-cache' -H 'Accept-Encoding: gzip, d ...
- Spark性能优化指南-高级篇
转自https://tech.meituan.com/spark-tuning-pro.html,感谢原作者的贡献 前言 继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作 ...


