Webpack 从0开始
Webpack
Docs
https://webpack.github.io/docs/?utm_source=github&utm_medium=readme&utm_campaign=trdr
Webpack可以做什么
- 支持CMD AMD (Gulp还需要browserify才能CMD)
- 模块加载器 插件机制 (典型的模块加载器babel-loader)
- 可以通过配置打包成多个文件 (充分利用浏览器缓存功能)
- 样式 图片等静态资源都可以视作模块 (任何的文件都能被 require)
- 内置source-map
第一个例子
首先npm install -g webpack
和Gulp一样 有一个入口执行文件 webpack.config.js
module.exports = {
entry: './main.js',
output: {
filename: 'bundle.js'
}
};
如何运行它
$ webpack // 最基本的启动webpack方法
$ webpack -w // 提供watch方法,实时进行打包更新(包括被依赖的文件的改动)
$ webpack -p // 对打包后的文件进行压缩,提供production
$ webpack -d // 提供source map,方便调试
sourcemap对应的文件将会在 webpack:// 下面的一个 . 目录中
ES6
想要把ES6转为ES5 需要babel
当然Gulp也有babel 为什么网上都是webpack呢
对于import export这种 babel后会是 require(...)
浏览器是不认识require的 若用gulp还要再用browserify
但是wepack可以直接把require编译为浏览器可执行的语句
webpack.config.js
module.exports = {
// entry: './main.jsx', //不能直接写main.jsx //当前目录下必须加上 ./ //否则提示找不到文件
entry: './f2.js',
output: {
filename: 'bundle.js'
},
module: {
loaders:[
{ test: /\.js[x]?$/, exclude: /node_modules/, loader: 'babel-loader' },
]
}
};
f2.js
import f1 from './f1.js';
console.log(f1.generateRandom());
f1.js
function generateRandom() {
return Math.random();
}
function sum(a, b) {
return a + b;
}
export default {
generateRandom:generateRandom,
sum:sum
}
什么是Loader
Loader就是一个使你的资源经过一定transform变成新资源的东东(好吧 这个翻译很糟糕)
Loaders are transformations that are applied on a resource file of your app. They are functions (running in node.js) that take the source of a resource file as the parameter and return the new source.
url-loader
和file-loader类似 能够返回一个文件的路径
文件size 小于limit的 将返回文件的data-url
css-loader style-loader
style-loader是用于加载css文件的
css-loader是将css中的 import url 之类翻译为成require
http://stackoverflow.com/questions/25472908/is-the-webpack-style-loader-meant-to-load-all-css-or-just-application-specific
css还是建议使用html引入的方式
现代浏览器会先加载css并解析, 用html来引入css而不是bundle.js引入 页面加载更快
且对于base.css 浏览器可以缓存
html-loader
用于load模板html文件
比如var domTmp = require('./dom.tpl.html');
Webpack 从0开始的更多相关文章
- Webpack+vue2.0如何注册全局组件 (01)
Part 1, 问题: webpack + vue2.0框架中,如何在入口js中注册组件? 就是在一个月以前,匆匆闯入vuejs这个社群,基本了解了vuejs的一些基础特性和语法.笔者兴致勃勃地开始想 ...
- webpack 4.0.0-beta.0 新特性介绍
webpack 可以看做是模块打包机.它做的事情是:分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式 ...
- 基于Vue + Vuex + Vue-router + Webpack 2.0打造微信界面
一.项目简介 基于Vue + Vuex + Vue-router + Webpack 2.0打造微信界面,实现了微信聊天.搜索.点赞.通讯录(快速导航).个人中心.模拟对话.朋友圈.设置等功能. 二. ...
- webpack 4.0 相关
Webpack 4.0发布了!! https://www.jianshu.com/p/3a13f1b37300 webpack详解 https://juejin.im/post/5aa3d2056fb ...
- Webpack 2.0 的文档
Webpack 2.0 的文档 https://webpack.js.org/get-started/
- webpack 4.0 版本的简单使用
webpack 4.0 学习指南 最近前端又要变天了,vue作者推出了vue-cli 3版本,并且里面使用了webpack 4. 但是webpack 3 和webpack 4 二者的使用方式完全不一样 ...
- webpack 3.1 升级webpack 4.0
webpack 3.1 升级webpack 4.0 为了提升打包速度以及跟上主流技术步伐,前段时间把项目的webpack 升级到4.0版本以上 webpack 官网:https://webpack.j ...
- webpack 4.0尝鲜
发布不久得webpack 4.0据说速度快了68% - 98%,然后还支持没配置文件,所以看起来很牛逼得样子 所以尝试一发 webpack和webpack-cli分离 现在执行webpack命令 必须 ...
- webpack 4.0 配置方法以及错误解决
选取一个空目录来试验 全局安装webpack4.1之后 创建目录 mkdir webpacktest && cd webpacktes 初始化package.json npm init ...
- 走近webpack(0)--正文之前的故事
在前端工作的过程中,只要你接触过vue,angular,react,gulp就一定知道webpack或者听说过或者使用过webpack,但是或许你对webpack的使用方法并不是十分了解,只是会用写好 ...
随机推荐
- zoj1025 Wooden Sticks
DAG转移,从切题的数量来看是一道水题,给你n个棒,大的可以延续小的,问最少上升子序列的个数. 其实这道题是用贪心来写的,因为这是个有向无环图,到达分叉口,每一条路都要便历,所以每条路应该一样对待,有 ...
- light 1012 Guilty Prince
题意:一共有 T 组测试数据,每组先给两个数,w,h,表示给一个 高h,宽w的矩阵,‘#’表示不能走,‘.’表示能走,‘@’表示起始点,问,从起始点出发能访问多少个点. 简单的BFS题,以前做过一次. ...
- PHP的五种常见设计模式
工厂模式 最初在设计模式 一书中,许多设计模式都鼓励使用松散耦合.要理解这个概念,让我们最好谈一下许多开发人员从事大型系统的艰苦历程.在更改一个代码片段时,就会发生问题,系统其他部分 —— 您曾认为完 ...
- scanf与gets函数混用 前后位置出错的问题解决
scanf与gets函数混用 利用scanf函数从键盘接收一字符(或整数)时,它只读入字符(或整数)本身,而把字符(或整数)后的回车符留在输入缓冲区内:gets函数从标准的输入读取,如果使用gets函 ...
- SQL语句执行效率及分析
查询效率分析:子查询为确保消除重复值,必须为外部查询的每个结果都处理嵌套查询.在这种情况下可以考虑用联接查询来取代.如果要用子查询,那就用EXISTS替代IN.用NOT EXISTS替代NOT IN. ...
- (asp.net MVC学习)System.Web.Mvc.HtmlHelper学习及使用
在ASP.NET MVC框架中没有了自己的控件,页面显示完全就回到了写html代码的年代.还好在asp.net mvc框架中也有自带的HtmlHelper和UrlHelper两个帮助类.另外在MvcC ...
- Windows 7安装教程(详细图解)
早前向大家介绍了Windows XP的安装教程,今天思齐再来介绍一下Windows 7的安装教程,Windows 7在安装上相对以前的Windows操作系统都要简单一些,这一点对于尤其是非专业用户来说 ...
- Delphi使用XmlHttp获取时间
uses ComObj, DateUtils; procedure TForm1.Button1Click(Sender: TObject); var XmlHttp: Variant; datetx ...
- flex实现股票行情走势图
原文 http://blog.csdn.net/shenjiancomputer/article/details/8051873 第一步: jsp:1 <%@page import=" ...
- [转] Mysql 数据库引擎
你能用的数据库引擎取决于mysql在安装的时候是如何被编译的.要添加一个新的引擎,就必须重新编译MYSQL.在缺省情况下,MYSQL支持三个引擎:ISAM.MYISAM和HEAP.另外两种类型INNO ...