Webpack简易入门教程

<!-- 其实网上关于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

时间: 2024-10-31 20:19:54

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

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

LoadRunner12.x简易入门教程--(一)回放与录制 今天在这里分享一下LoadRunner12.x版本的入门使用方法,希望对刚接触LoadRunner的童鞋有所帮助. LoadRunner12的组成分为三部分,分别是:Virtual User Generator.Controller.Analysis 首先要介绍的是用Virtual User Generator做一个最简单的录制与回放. 打开软件后,界面如下,通过左上角的菜单,我们来新建一个脚本 由于现在Web项目比较多,这里也就用W

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

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; text-align: center; font: 30.0px Helvetica; color: #000000 } p.p2 { margin: 0.0px 0.0px 0.0px 0.0px; font: 16.0px "PingFang TC Semibold"; color: #000000 } p.p3 { margin: 0.0px 0.0px 0.0px 0.0px; font: 11.0

Lua简易入门教程

环境:lua for windows (lfW)主页:http://luaforwindows.luaforge.net/https://code.google.com/p/luaforwindows/ lua for windows其实是一整套Lua的开发环境,它包括:Lua Interpreter(Lua解释器)Lua Reference Manual(Lua参考手册) Quick Lua Tour (Lua快速入门)Examples (Lua范例)Libraries with docume

Flask简易入门教程 一、小表砸helloworld,跑起来哟

用了很多框架和语言,最后发现还是Python和Flask比较灵活.做了这么多年的web开发,终于找到了真爱.废话不多说,写这个为了记录下来自己的一些心得体会,先是按照mega大神的教程来翻的.后面会加一些自己的体会. Flask的安装 推荐先使用virtualenv,用于搭建一个和谐的互不干扰的环境. 这里没有用哦,懒!!! ubuntu下安装如下: $sudo apt-get install python-virtualenv windows就不说了. 然后是安装flask $ apt-get

CSS工具-Flexbox简易入门教程

近几年,CSS领域出现了一些复杂的专用布局工具,用以代替原有的诸如使用表格.浮动和绝对定位之类的各种变通方案.Flexbox,或者说是弹性盒子布局模块(Flexible Box Layout Module)是这些新布局工具中的第一个,接着是CSS网格布局模块(CSS Grid Layout Module).我们会在本文给出一个易于理解的flexbox入门介绍. 随着CSS网格布局的引入,你可能会问flexbox布局是否真的还有必要.虽然它们所能做的事情有一些重叠,但其各自在CSS布局中有着非常特

matplotlib简易入门教程

做数据分析,首先是要熟悉和理解数据,所以掌握一个趁手的可视化工具是非常重要的,否则对数据连个基本的感性认识都没有,如何进行下一步的design Getting Started with Matplotlib 先看个简单的例子,plot,即画线 画线,需要给出线上的点的坐标,然后Matplotlib会自动将点连成线 In [2]: x = range(6) In [3]: plt.plot(x, [xi**2 for xi in x]) 可以看到plot的参数是两个list,分布表示x轴和y轴的坐

【记录】YAML 简易入门教程

YAML 是 "YAML Ain't a Markup Language"(YAML 不是一种标记语言)的递归缩写.在开发的这种语言时,YAML 的意思其实是:"Yet Another Markup Language"(仍是一种标记语言). YAML 的语法和其他高级语言类似,并且可以简单表达清单.散列表,标量等数据形态.它使用空白符号缩进和大量依赖外观的特色,特别适合用来表达或编辑数据结构.各种配置文件.倾印调试内容.文件大纲(例如:许多电子邮件标题格式和YAML

Markdown的入门教程,非常的使用

原文链接: https://www.jianshu.com/p/20e82ddb37cb 链接地址  点我      粘贴进来的内容竟然没有图片,好气呦 目录 概述 简介 官方文档 Markdown编辑器 初级语法 标题 粗体和斜体 段落和换行 分隔线 引言 列表 无序列表 有序列表 代码 行内代码块 段落代码块 链接 网址链接 图片链接 指定图片宽高 用图床获取外链 进阶语法 标签 目录 表格 脚注 公式 流程图 序列图 其他 兼容HTML 特殊字符自动转换 反斜杠 自动链接 参考 <h2 i

Git简易的命令行入门教程

简易的命令行入门教程: Git 全局设置: git config --global user.name "imsoft" git config --global user.email "[email protected]" 创建 git 仓库: mkdir imsoft.github.io cd imsoft.github.io git init touch README.md git add README.md git commit -m "first