webpack+babel+react+antd技术栈的基础配置

  前段时间使用webpack+babel+react+antd做了一套后台管理系统,刚开始被一大堆的新知识压的喘不过气来,压力挺大的。还在一步步走来,学习了很多。那时候还不会配置,直接从网上下了别人配置好的可以跑的。之后特意花了一段时间好好研究了下webpack,后面可以直接动手做一些基本的配置。webpack很强大,还有许多要学习的地方。

  最近学习了挺多知识,堆积着没有记录到博客。找机会慢慢写出,因工作需要,最近干了后端,毕竟是前端出身,前端的知识也没有拉下,(开玩笑的说:没有忘本!),还会继续学习。

  下面就分享下我的配置过程

  demo项目目录

  

  首先,创建项目目录并且进入项目

  1. mkdir reactDemo && cd reactDemo

  新建一个package.json文件,内容如下:

  1. {
  2. "name": "webpack-Demo", //项目名称
  3. "version": "0.0.1", //版本号
  4. "description": "webpack-Demo", //项目描述
  5. "keywords": [ //关键字
  6. "demo",
  7. "webpack"
  8. ],
  9. "author": "pmx", //作者
  10. "scripts": { //定义脚本命令 如dev 启动为npm run dev
  11. "dev": "webpack-dev-server --progress --config ./webpack.config.js"
  12. },
  13. "devDependencies": { //开发过程中依赖的包
  14. "antd": "^2.13.10",
  15. "babel-core": "^6.25.0",
  16. "babel-loader": "^7.1.1",
  17. "babel-plugin-import": "^1.6.2",
  18. "babel-polyfill": "^6.23.0",
  19. "babel-preset-es2015": "^6.24.1",
  20. "babel-preset-react": "^6.24.1",
  21. "css-loader": "^0.28.4",
  22. "html-webpack-plugin": "^2.26.0",
  23. "react": "^15.6.1",
  24. "react-dom": "^15.6.1",
  25. "style-loader": "^0.18.2",
  26. "webpack": "^3.4.1",
  27. "webpack-dev-server": "^2.6.1"
  28. }
  29. }

  从上到下介绍下所使用的依赖包: "antd"是蚂蚁金服开发的一个致力于提升『用户』和『设计者』使用体验的中台设计语言,采用 React封装了一套 Ant Design (官网)的组件库。“babel-core”,"babel-loader" 是使用babel必备的两个依赖,再加"babel-preset-es2015"这个规则(规则可以换成其他种),这三个是babel能使用基础。“babel-plugin-import”是用来按需加载 antd 的脚本和样式的。"babel-polyfill"为了使新的ES5,es6新的内置如Promise等,一些API可使用。详细说明  "babel-preset-react"是解析react的规则, "css-loader","style-loader"是CSS样式的依赖包。"html-webpack-plugin"可以生成创建html入口文件 (可以不需要)。 "react","react-dom" 是react需要的依赖,"webpack","webpack-dev-server"是webpack和帮助自动服务的。

  接着新建webpack.config.js,开始设置配置

  1. var path = require("path")
  2.  
  3. var webConfig = {
  4. entry: "./src/index.jsx", //入口文件
  5. output: {
  6. path: path.resolve(__dirname, "dist"), //打包后的文件路径(真实存在)
  7. publicPath: "/",
  8. filename: "bundle.js" //打包后的文件名(存在于内存中)
  9. },
  10. devtool: 'cheap-module-eval-source-map',
  11. devServer: {
  12. /*contentBase: './src', 默认以当前目录为根目录,如果加了此属性,就以src文件为根目录 */
  13. historyApiFallback: true,
  14. inline: true,
  15. port: 9001, //端口9001
  16. },
  17. module: {
  18. loaders: [
  19. {
  20. test: /\.(js|jsx)$/,
  21. exclude: '/node_modules/',
  22. loader: 'babel-loader',
  23. query:{
  24. presets:['es2015','react'], //使用es2015和react规则解析
  25. plugins: [["import", { "libraryName": "antd", "style": "css" }]] //按需引入antd
  26. }
  27. },
  28.  
  29. {
  30. test: /\.css$/,
  31. loader: 'style-loader!css-loader'
  32. }
  33. ]
  34. }
  35.  
  36. }
  37.  
  38. module.exports = webConfig;

index.jsx里面

  1. "use strict"
  2.  
  3. import React from 'react'
  4. import ReactDOM from 'react-dom'
  5. import 'babel-polyfill'
  6. import App from './App.jsx'
  7. ReactDOM.render(<App />, document.getElementById('app'));

App.jsx里面

  1. import React from 'react'
  2. import {Component} from 'react'
  3. import './index.css'
  4. import { Button } from 'antd';
  5.  
  6. class App extends Component {
  7. constructor(props) {
  8. super(props)
  9. this.state = {
  10. flag: false
  11. }
  12. }
  13.  
  14. getBgColor() {
  15. this.setState({
  16. flag: !this.state.flag
  17. })
  18. }
  19.  
  20. render() {
  21. return (
  22. <div>
  23. <h1>hello React</h1>
  24. <button type="button" onClick={this.getBgColor.bind(this)}>按钮</button>
  25. <div className={this.state.flag ? 'red' : ''} />
  26. <Button type="primary">Primary</Button>
  27. <Button>Default</Button>
  28. <Button type="dashed">Dashed</Button>
  29. <Button type="danger">Danger</Button>
  30. </div>
  31.  
  32. )
  33. }
  34. }
  35.  
  36. export default App

index.css里面

  1. .red {
  2. background: #f90;
  3. width: 100px;
  4. height: 100px;
  5. border: 5px solid blue;
  6. }

  最后,使用npm run dev  ,这个项目就跑起来了。需要其他的依赖的,可以自己随便添加。thank  you

webpack+babel+react+antd技术栈的基础配置的更多相关文章

  1. 详解 Webpack+Babel+React 开发环境的搭建

    1.认识Webpack 构建应用前我们先来了解一下Webpack, Webpack是一个模块打包工具,能够把各种文件(例如:ReactJS.Babel.Coffeescript.Less/Sass等) ...

  2. SignalR 在React/GO技术栈的生产应用

    哼哧哼哧半年,优化改进了一个运维开发web平台. 本文记录SignalR在react/golang 技术栈的生产小实践. 1. 背景 有个前后端分离的运维开发web平台, 后端会间隔5分钟同步一次数据 ...

  3. npm+webpack+babel+react安装

    npm+webpack+babel+react安装 1.首先要安装 Node.js, Node.js 自带了软件包管理器 npm 2.在项目文件目录下生成package.json # 进入项目目录$ ...

  4. 用react系列技术栈实现的demo整合系统

    引子 学生时代为了掌握某个知识点会不断地做习题,做总结,步入岗位之后何尝不是一样呢?做业务就如同做习题,如果‘课后’适当地进行总结,必然更快地提升自己的水平. 由于公司采用的react+node的技术 ...

  5. 一个基于React整套技术栈+Node.js的前端页面制作工具

    pagemaker是一个前端页面制作工具,方便产品,运营和视觉的同学迅速开发简单的前端页面,从而可以解放前端同学的工作量.此项目创意来自网易乐得内部项目nfop中的pagemaker项目.原来项目的前 ...

  6. webpack+babel+react操作小结

    最近学习了一下Webpack,个人感觉还是非常实用的,现在总结一下自己的学习笔记. 什么是 Webpack Webpack 是一个模块打包器.它将根据模块的依赖关系进行静态分析,然后将这些模块按照指定 ...

  7. Vue2.0+Webpack+Element+Axios+vueRouter技术栈使用过程总结

    搭建项目架构 目采用Webpack+Vue-router的架构方式,开始安装(一切操作都在windows系统上完成) 1.按Win+R,然后在文本框中输入cmd,回车打开命令行,输入vue-cli安装 ...

  8. react native ios 开发,基础配置笔记。

    一.获取硬件信息,使用react-native-device-info插件,配置说明: 1.首先需要安装组件:npm install react-native-device-info --save 2 ...

  9. react native android 开发,基础配置笔记。

    一.React-native-device-info https://github.com/rebeccahughes/react-native-device-info 二.修改App名称 三.定位权 ...

随机推荐

  1. python 对象(object)

  2. shell学习(23)- diff和patch

    diff命令可以生成两个文件之间的差异对比. (1) 先创建下列用于演示的文件.文件 1:version1.txt this is the original text line2 line3 line ...

  3. sql —— between

    BETWEEN 操作符在 WHERE 子句中使用,作用是选取介于两个值之间的数据范围. 原表: 执行查询: 上面就可以搜索出得分为80~90的学生了,包含80,也包含90.

  4. AtCoder Regular Contest 090 D - People on a Line

    D - People on a Line Problem Statement There are N people standing on the x-axis. Let the coordinate ...

  5. HDU - 1875_畅通工程再续

    畅通工程再续 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Problem Desc ...

  6. 【机器学习】Iris Data Set(鸢尾花数据集)

    [机器学习]Iris Data Set(鸢尾花数据集) 注:数据是机器学习模型的原材料,当下机器学习的热潮离不开大数据的支撑.在机器学习领域,有大量的公开数据集可以使用,从几百个样本到几十万个样本的数 ...

  7. Plupload的上传机制

    plupload支持多文件上传.经过测试发现,plupload在上传多个文件时,会把多个文件拆分成单个的一个一个上传.

  8. Spring Data JPA 查询结果返回至自定义实体

    本人在实际工作中使用Spring Data Jpa框架时,一般查询结果只返回对应的Entity实体.但有时根据实际业务,需要进行一些较复杂的查询,比较棘手.虽然在框架上我们可以使用@Query注解执行 ...

  9. Java成员方法,构造方法

    //作者:qingfeng//2017/2/17//功能:理解类的成员方法和构造方法class CreatWays{ public static void main(String args[]){   ...

  10. 2019-2-27-如何替换一个-exe-的图标

    title author date CreateTime categories 如何替换一个 exe 的图标 lindexi 2019-02-27 20:33:16 +0800 2019-2-27 2 ...