webpack使用指南

新建一个项目

新建项目react-demo文件夹

首先安装webpack

1.全局安装webpack
npm install webpack --global
2.进入项目中,利用初始化npm初始化新建一个package.json
npm init
3.在项目中安装webpack,顺便把它加进开发依赖
npm install webpack --save-d
4.在根目录下创建一个js文件,名为entry.js
在里面随便输入一些测试语句,例如:
ducument.getElementById('app').textContent = "hello~";
5.在根目录下创建一个index.html
结构如下:

<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>react-demo</title>
</head>
<body>
  <div id="app"></div>
  <script src="bundle.js"></script>
</body>
</html>```
6.回到项目目录,执行
`webpack entry.js bundle.js`
entry.js为打包的入口文件,bundle.js为打包生成后的文件
值得注意的是,webpack打包的时候,会自动处理入口文件的依赖,所以只要在入口文件中把相应模块require进去之后,webpack会自动将需要的模块打包到bundle.js中
7.loader,在需要处理要css,html或者json的时候,就需要去用loader这种转化器去处理
例如:在根目录下面建一个名为style.css的css文件,里面写上一些测试样式:
body {
  background-color: red;
}
先在项目里安装需要的loader:
`npm install css-loader style-loader --save-d`
安装好loader之后,在index.html中引入这些loader,语法如下:
require('style!css!./style.css')
规则为:require('loader!loader!./style.css')
重新打包,刷新页面,发现css生效
`webpack entry.js bundle.js`
8.webpack的配置文件
根据官方文档: http://webpackdoc.com/configuration.html
新建一个名字为webpack.config.js的配置文件,内容如下:
````var webpack = require('webpack')
module.exports = {
  entry: './entry.js',
  output: {
    path: __dirname,
    filename: 'bundle.js'
  },
  module: {
    loaders: [
      {test: /\.css$/, loader: 'style!css'}
    ]
  }
}````
配置文件可以用来配置入口文件的位置和名称,以及webpack打包后生成的文件的位置和名称,还有一些loader的配置,这样做的好处是不用把所有的loader都在入口文件中require

有了webpack.config.js配置文件之后,入口文件中就不再需要指定loader了,把
`require('style!css!./style.css')`改为
`require('./style.css')`
执行webpack命令,发现样式依然生效
`webpack`
9.使用source-map,在控制台上的Sources的webpack://目录下面可以看到打包之前的css和js
直接在控制台上运行`webpack --devtool source-map`或者将配置加入到webpack.config.js中

10.结合babel一起使用
和babel一起使用,需要安装babel-loader和babel
如果需要处理es2015的代码,还需要安装babel-preset-es2015
`npm install babel-loader babel-core babel-preset-es2015 --save-d`
安装完后再根目录下新建一个.babelrc
````{
  "presets": ["es2015"]
}````
写入预设配置

在需要用到babel这个loader的时候,需要在webpack.config.js里增加loader
`{test: /\.js$/, loader: 'babel'}`

require('./style.css');旧的写法
import './style.css'; es2015的写法


11.webpack-dev-server

webpack-dev-server 开发服务是一个更好的选择。它将在 localhost:8080 启动一个 express 静态资源 web 服务器,并且会以监听模式自动运行 webpack,可以实现实时刷新页面

npm install webpack-dev-server -g
npm install webpack-dev-server --save-d
安装完之后执行
`webpack-dev-server --inline --hot`

在http://localhost:8080/这个地址,如果有改动的话,可以看到页面会实时刷新
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,793评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,567评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,342评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,825评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,814评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,680评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,033评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,687评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,175评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,668评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,775评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,419评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,020评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,206评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,092评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,510评论 2 343

推荐阅读更多精彩内容

  • 无意中看到zhangwnag大佬分享的webpack教程感觉受益匪浅,特此分享以备自己日后查看,也希望更多的人看到...
    小小字符阅读 8,140评论 7 35
  • GitChat技术杂谈 前言 本文较长,为了节省你的阅读时间,在文前列写作思路如下: 什么是 webpack,它要...
    萧玄辞阅读 12,671评论 7 110
  • 学习流程 参考文档:入门Webpack,看这篇就够了Webpack for React 一. 简单使用webpac...
    Jason_Zeng阅读 3,106评论 2 16
  • webpack 介绍 webpack 是什么 为什么引入新的打包工具 webpack 核心思想 webpack 安...
    yxsGert阅读 6,447评论 2 71
  • 【每日一悟】喻青 第281天,2017.7.4,始于2016.9.21。 【践行】: 大宝今天就没上学了,基本开启...
    喻青阅读 207评论 1 3