webpack整体了解
一、下载
新建一个文件夹,在cmd中npm init->npm install->npm install webpack --save-dev
下载完成之后,新建一个webpack.config.js文件,在这个里面写配置
开始准备:http://www.cnblogs.com/GainLoss/p/7198953.html
webpack踩坑:http://www.cnblogs.com/GainLoss/p/7473585.html
vue+webpack:http://www.cnblogs.com/GainLoss/p/6592729.html
http://www.cnblogs.com/GainLoss/p/6927626.html
二、基础
1.一个入口一个出口
2.多个入口多个出口
3.将第三方文件单独成一个文件夹
4.css文件 js文件 图片 压缩
三、功能
1.基本 一个入口一个出口 将ES6转成ES5
- var path=require('path');
- var HtmlWebpackPlugin=require('html-webpack-plugin')
- module.exports={
- entry:{
- index:'index.js',
- },
- output:{
- path:path.resolve(__dirname,'dist'),
- filename:'[name].[hash].js',
- },
- resolve:{
- extensions:['.js'],//js文件引入的时候可以不用加后缀
- },
- module:{
- rules:[
- {
- test:/\.js$/,
- exclude:/node_modules/,
- loader:'babel-loader',
- query:{
- presets:['es2015']
- }
- },
- ]
- },
- plugins:[
- new HtmlWebpackPlugin({
- template:'./index.html'
- }),
- ]
- }
2.将css转成单独的文件
在cmd中下载 npm install style-loader css-loader --save-dev
- ...module
{- test:/\.css$/,
- exclude:/node_modules/,
- loader:ExtractTextPlugin.extract({ fallback: 'style-loader', use: 'css-loader' }),
- },
...plugin中
3.将代码中的图片转成base64
在 cmd中下载 npm install url-loader --save-dev
- ...module
{- test:/\.(png|jpg|gif)$/,
- exclude:/node_modules/,
- loader:'url-loader'
- }
4.将第三方插件单独成文件
- module.exports={
- entry:{
- index:'index.js',
- vendor:['./web/jquery']
- },
- output:{
- path:path.resolve(__dirname,'dist'),
- filename:'[name].[hash].js',
- },
- resolve:{
- extensions:['.js'],
- },
- module:{
- rules:[
- ...
- ]
- },
- plugins:[
- ...new webpack.optimize.CommonsChunkPlugin({
- name:['vendor','manifest']
- }),
- ]
- }
5.实现多个入口文件
- ...
- function getfile(){//这里面需要获取全部符合的文件
- var entry=[];
- glob.sync(__dirname+'/web/*.js').forEach(function(file){
- var name=file.split('main')[]
- if(name){
- var filename=file.split('main')[]+"main"+name;
- entry.push(filename)
- }
- })
- return entry
- }
- module.exports={
- entry:{
- index:getfile(),
- vendor:['./web/jquery']
- },
- ...
- }
总的代码:
- var path=require('path');
- var HtmlWebpackPlugin=require('html-webpack-plugin')
- var ExtractTextPlugin=require('extract-text-webpack-plugin')
- var glob=require('glob')
- var webpack=require('webpack')
- var CleanWebpackplugin=require('clean-webpack-plugin')
- function getfile(){
- var entry=[];
- glob.sync(__dirname+'/web/*.js').forEach(function(file){
- var name=file.split('main')[]
- if(name){
- var filename=file.split('main')[]+"main"+name;
- entry.push(filename)
- }
- })
- return entry
- }
- module.exports={
- entry:{
- index:getfile(),
- vendor:['./web/jquery']
- },
- output:{
- path:path.resolve(__dirname,'dist'),
- filename:'[name].[hash].js',
- },
- resolve:{
- extensions:['.js'],
- },
- module:{
- rules:[
- {
- test:/\.js$/,
- exclude:/node_modules/,
- loader:'babel-loader',
- query:{
- presets:['es2015']
- }
- },
- {
- test:/\.css$/,
- exclude:/node_modules/,
- loader:ExtractTextPlugin.extract({ fallback: 'style-loader', use: 'css-loader' }),
- },
- {
- test:/\.(png|jpg|gif)$/,
- exclude:/node_modules/,
- loader:'url-loader'
- }
- ]
- },
- plugins:[
- new HtmlWebpackPlugin({
- template:'./index.html'
- }),
- new ExtractTextPlugin('style.css'),
- new webpack.optimize.CommonsChunkPlugin({
- name:['vendor','manifest']
- }),
- new CleanWebpackplugin(
- ['dist/index.*.js'],
- {
- root:__dirname,
- verbose:true,
- dry:true
- }
- ),
- ]
- }
webpack整体了解的更多相关文章
- webpack整体配置结构
摘自<深入浅出webpack>2.8 const path = require('path'); module.exports = { // entry 表示入口,webpack执行的第一 ...
- 细说 webpack 之流程篇
摘自: http://taobaofed.org/blog/2016/09/09/webpack-flow/ 引言 目前,几乎所有业务的开发构建都会用到 webpack .的确,作为模块加载和打包神器 ...
- 细说webpack之流程篇
引言 目前,几乎所有业务的开发构建都会用到 webpack .的确,作为模块加载和打包神器,只需配置几个文件,加载各种 loader 就可以享受无痛流程化开发.但对于 webpack 这样一个复杂度较 ...
- webpack编译流程漫谈
前言 weback在web构建工具的激烈竞争中逐渐脱引而出. 无论是编译速度.报错提示.可扩展性等都给前端开发者耳目一新的感觉.本篇文章是个人对webpack的一点小研究总结. webpack在开发者 ...
- [转] webpack之plugin内部运行机制
简介 webpack作为当前最为流行的模块打包工具,几乎所有的主流前端开发框架(React.Vue等)都会将其作为默认的模块加载和打包工具.通过简单的配置项,使用各种相关的loader和plugin, ...
- Webpack Tapable原理详解
directory - src - sim ---- 简单的模拟实现 - /.js$/ ---- 使用 代码已上传github, 地址 Detailed Webpack 就像一条生产线, 要经过一系列 ...
- webpack介绍和使用
一webpack介绍1由来2介绍3作用4拓展说明5webpack整体认知二webpack安装1安装node2安装cnpm3安装nrm的两种方法4安装webpack三webpack配置0搭建项目结构1初 ...
- browserify学习总结
前言 在未接触browserify,虽然我知道它是一个前端构建工具,但还是有几个疑问: 1. browserify出现的日期? 2. 能构建哪些文件? 3. 附加的browserify代码体积是多大? ...
- happypack 原理解析
说起 happypack 可能很多同学还比较陌生,其实 happypack 是 webpack 的一个插件,目的是通过多进程模型,来加速代码构建,目前我们的线上服务器已经上线这个插件功能,并做了一定适 ...
随机推荐
- Gym - 101572G Galactic Collegiate Programming Contest 小根堆(set)
题目传送门 题目大意: n个人,m次提交,每次提交都代表某支队伍做出一题,并且给出罚时,让你输出每次提交后,编号为1的队伍的排名. 思路: 首先处理ac和罚时,由于罚时最大1000,最多有1e5次,要 ...
- jQuery 全屏滚动插件 fullPage.js 参数说明
fullPage.js 是一个基于 jQuery 的插件,它能够很方便.很轻松的制作出全屏网站,主要功能有: 支持鼠标滚动 支持前进后退和键盘控制 多个回调函数 支持手机.平板触摸事件 支持 CSS3 ...
- C#学习 - 关于Interlocked.CompareExchange()的用法
https://blog.csdn.net/jianhui_wang/article/details/80485517 Interlocked.CompareExchange有一组函数 名称 说明 ...
- JS Date 时间格式化
Date2Str(x, y) { , d: x.getDate(), h: x.getHours(), m: x.getMinutes(), s: x.getSeconds() }; y = y.re ...
- pip install keras==1.2.1
[该方法仅适用于压缩包中含有setup.py的情况] 先从GitHub上找到想要下载的历史版本,右键复制链接地址. 然后执行命令: pip install https://github.com/ker ...
- 查看Python支持的.whl文件版本
AMD64 import pip._internal print(pip._internal.pep425tags.get_supported()) WIN32 import pip print(pi ...
- 百度Echart 地图
使用百度地图做一个全国地图数据分析的功能,如下图 代码 <%@ Page Language="C#" AutoEventWireup="true" Cod ...
- LISP语言学习资源
LISP的介绍:Paul Graham 的主页 http://paulgraham.com/index.html Lisp之根源 - 保罗·格雷厄姆 http://daiyuwen.freeshell ...
- Not so Mobile UVA - 839
题目链接:https://vjudge.net/problem/UVA-839 题目大意:输入一个树状天平,根据力矩相等原则,判断是否平衡. 如上图所示,所谓力矩相等,就是Wl*Dl=Wr*Dr. ...
- [转]href="#"与javascript:void(0)的区别
本文转自:http://www.cnblogs.com/suizhikuo/p/3928411.html 如果我们想把a标签中的链接置成空链接,我们一般会用两种方法: 1 <a href=&qu ...