<!-- 其实网上关于webpack的教程已经很多了,但是本人在学习过程中发现很多教程有错误,或者写的很不全面,结果做的过程出现各种各样的问题,对新手不但不友好还会让人浪费很多不必要的时间。所以决定自己做个简易教程,这个教程也没有写太深入,面向的是纯新手,但按这个教程大家能快速搭建自己的webpack,方便大家为后面的学习做准备 -->

github地址   https://github.com/Skura23/simple-webpack-test/tree/master

项目结构

--your project
|--prod
|--components
|--first.js
|--index.js
|--build
|--index.html
|--bundle.js

用npm安装依赖

npm init ,填写信息默认即可

npm install react --save-dev   安装react

npm install react-dom --save-dev (或者 npm i react-dom)  安装react-dom

npm install webpack --save-dev  安装webpack

npm install babel-loader --save-dev  安装babelReact 

npm install jsx-loader --save-dev  安装jsx-loader将JSX语法转为js语句

创建webpack.config.js

var path=require('path');

module.exports={
entry:path.resolve(__dirname,'./prod/index.js'),
output:{
path:path.resolve(__dirname,'./build'),
filename:'bundle.js',
},
module: {
loaders: [{
test: /\.js$/,
loader: 'babel!jsx',
exclude: /node_modules/ ,
presets: ['es2015', 'react']
}]
}
}

entry:指入口文件的配置项

output:配置打包结果,path定义了输出的文件夹,filename则定义了打包结果文件的名称

module:定义了对模块的处理逻辑,这里可以用loaders定义了一系列的加载器,以及一些正则。当需要加载的文件匹配test的正则时,就会调用后面的loader对文件进行处理,这正是webpack强大的原因。

接着配置index.js

var React = require('react');
var ReactDOM = require('react-dom');
var AppComponent = require('./components/first.js');
ReactDOM.render(<AppComponent />, document.getElementById('content'));

再配置first.js(这个是自定义组件)

var React = require('react');
var ReactDOM = require('react-dom');
var FirstComp = React.createClass({
render: function () {
return (
<div className="firstComp">
Hello World!
</div>
);
}
}); module.exports = FirstComp;

修改index.html以引入bundle.js,

bundle.js的生成位置在前面已经配置过了,所以我们只要在index.html里引入就可以了

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title>React Test</title>
</head>
<body>
<div id="content"></div>
<script src="bundle.js"></script>
</body>
</html>

配置package.json

打开package.json,并找到scripts代码块

修改scripts为

"scripts": { "build": "webpack" }

并且执行:

npm run build

现在打开index.html,可以看见Hello world,说明我们使用webpack打包成功。

其实教程至此就完了,但后面你会发现每次更新文件后都要使用npm run build重新打包,费时费力,

接下来我们使用webpack-dev-server将项目运行在虚拟服务器上,我们可以在package.json文件内定义scripts,同时修改webpack的配置文件来达到文件修改能被监听,并自动刷新浏览器的效果!

配置webpack-dev-server

修改package.json为

"scripts": {
"build": "webpack",
"dev": "webpack-dev-server --hot --inline --devtool eval --progress --colors --content-base build"
},

webpack-dev-server: 在 localhost:8080 建立一个 Web 服务器

--devtool eval:为你的代码创建源地址。

--progress: 显示合并代码进度

--colors: 在命令行中显示颜色

--content-base build:指向设置的输出目录

并且在index.html里加入:

<script src="http://localhost:8080/webpack-dev-server.js"></script>

修改webpack.config.js :

var path = require('path');

module.exports = {
entry: ['webpack/hot/dev-server', path.resolve(__dirname, './prod/index.js')],
output: {
path: path.resolve(__dirname, './build'),
filename: 'bundle.js',
}
};

npm run dev

,打开http://localhost:8080,修改文件后保存,浏览器可自动刷新内容

 

github地址  https://github.com/Skura23/simple-webpack-test/tree/master

Webpack简易入门教程的更多相关文章

  1. Web压力测试工具 LoadRunner12.x简易入门教程--(一)回放与录制

        LoadRunner12.x简易入门教程--(一)回放与录制 今天在这里分享一下LoadRunner12.x版本的入门使用方法,希望对刚接触LoadRunner的童鞋有所帮助. LoadRun ...

  2. Webpack新手入门教程(学习笔记)

    p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } ...

  3. Pytest自动化测试-简易入门教程(02)

    Pytest框架简介 Pytest是一个非常成熟的全功能的Python测试框架,主要有以下几个特点:1.简单灵活,容易上手,支持参数化2.能够支持简单的单元测试和复杂的功能测试,3.还可以用来做sel ...

  4. webpack轻松入门教程

    webpack之傻瓜式教程及前端自动化入门 接触webpack也有挺长一段时间了,公司的项目也是一直用着webpack在打包处理,但前几天在教新人的情况下,遇到了一个问题,那就是:尽管网上的webpa ...

  5. Lua简易入门教程

    环境:lua for windows (lfW)主页:http://luaforwindows.luaforge.net/https://code.google.com/p/luaforwindows ...

  6. 给萌新的Flexbox简易入门教程

    转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文出处:https://www.sitepoint.com/flexbox-css-flexible-bo ...

  7. webpack的入门教程

    webpack是模块打包工具/前端资源加载.它是根据模块的依赖关系进行静态分析,然后将这些模块按照指定的规则生成对应的静态资源. webpack可以将css.less.js转换为一个静态文件,减少了页 ...

  8. Pytest自动化测试-简易入门教程(01)

    我们今天主讲的内容,就是测试框架Pytest,讲到这个测试框架对于没有做过Web自动化的伙伴来说,会觉得这个东西是陌生的,那么到底什么是框架呢?什么又是自动化呢?自动化为什么又要用框架呢? 难道我学自 ...

  9. mac os x使用Git简易入门教程

    具体如下: 1, 首先要了解什么是Git. 简而言之,Git是一个分布式的代码版本管理工具.类似的常用工具还有SVN,CVS. 概念了解参见:http://baike.baidu.com/subvie ...

随机推荐

  1. Eclipse无法查看源码 提示source not found

    学习项目代码的时候想要看一下Cookie的源码,已经确定下载到了本地,可是Ctrl+左键点进去,提示source not found(如下图),百度了以后,大家普遍认为需要安装反编译插件jad. 看了 ...

  2. 最具有性价比的语言javascript之二,学习篇

    先祝福各位,国庆假期愉快!前面写了一篇 最具有性价比的语言javascript之介绍篇,引起了不少的争议. 有些人javascript吐槽,埋怨.我目前做的都是后台系统.每个人的工作经历和兴趣爱好不一 ...

  3. css布局笔记(三)圣杯布局,双飞翼布局

    圣杯布局和双飞翼布局都是三列布局,两边定宽,中间自适应布局,中间栏要在放在文档流前面以优先渲染. 圣杯布局如下 <!-- 圣杯布局 --> <!DOCTYPE html> &l ...

  4. Cisco Packet Tracer中通过集线器组网

    Cisco Packet Tracer中可以通过集线器将多台电脑完成通信. Cisco Packet Tracer 6.2.0 一.添加三台电脑设备 1.按照下图1.2步骤操作,2步骤执行三次,拖拽P ...

  5. php_package v2.7发布了 宋正河作品

    php_package 是一个面向过程的底层开发框架 http://download.csdn.net/download/songzhengdong82/4974123 欢迎大家下载

  6. 与(&)、或(|)等运算符理解及其特殊用途

    1.按位与运算符(&) 在与运算中两个开关是串联的,如果我们要开灯,需要两个开关都打开灯才会打开.理解为A与B都打开,则开灯,所以是1&1=1任意一个开关没打开,都不开灯,所以其他运算 ...

  7. windows c++如何使窗口动态改变位置

    在windows软件中,经常会碰到一个功能:鼠标hover在某个地方时会出现窗口,有时候这个窗口的位置是会动态调整的. 熟悉使用windows API,理解windows中虚拟坐标.工作区坐标.屏幕坐 ...

  8. IIS 无法加载 CSS,JS的问题

    IIS 能加载 aspx,但不能加载里面的 js,css ,感觉有点坑. 解决方案如下:http://www.pageadmin.net/article/20121001/479.html 原来是没有 ...

  9. maven学习资料(三)

    两个项目聚合到一个项目中: .

  10. 导出excel失败,提示提示加载类型库/DDL出错

    首先,这里提供的解决办法仅适用于出现如下异常的情况:无法将类型为“Microsoft.Office.Interop.Excel.ApplicationClass”的 COM 对象强制转换为接口类型“M ...