webpack+babel+ES6+react环境搭建
webpack+babel+ES6+react环境搭建
步骤:
1 创建项目结构
mkdir app //创建app目录 用来存放项目源文件
mkdir dist // 创建dist目录 用来存放打包好的文件
touch .gitignore //创建.gitignore 用来添加git 忽略的文件
touch webpack.config.js //创建webpack的配置文件
cd app //进入到app目录
touch index.js //在app目录中创建 index文件 入口文件
mkdir component //创建componet目录 用来装组件
2 初始化项目
npm init -y
 
3 安装webpack
npm install webpack --save
注意:安装完成以后,项目目录下会生成一个node_modules的文件夹 用来存放npm包
4 打开webpack.config.js 文件 并添加配置项目
module.exports = {
  context:__dirname+"/app", //源文件目录
  entry:{
    app:"./index.js" //在源文件目录下去找index.js 文件作为打包的入口文件
  },
  output:{
    path:__dirname+"/dist", //生成的文件存放目录
    filename:"[name].bundle.js" //生成的文件 name 表示entry下面的app
  }
}
5 让npm 可以运行 webpack --在package.json 文件中 添加一条命令
{
  "name": "react",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "dev":"./node_modules/.bin/webpack"   //这条命令是新增加的
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "dependencies": {
    "babel": "^6.23.0",
    "babel-core": "^6.23.1",
    "babel-loader": "^6.3.2",
    "babel-preset-es2015": "^6.22.0",
    "webpack": "^2.2.1"
  }
}
6 在dist目录下面新建index.html 文件,并且引入打包好的js文件
<!DOCTYPE html>
<html lang="en">
<head>
<metacharset="UTF-8">
<title>首页</title>
</head>
<body>
</body>
<scriptsrc="app.bundle.js"></script>
</html>
doucment.write("hello world!!!!")
6 通过babel来使用es6
npm install babel-loader babel-core babel-preset-es2015 --save
module.exports = {
    context:__dirname+"/app",
    entry:{
        app:"./index.js"
    },
    output:{
        path:__dirname+"/dist",
        filename:"[name].bundle.js"
    },
    module:{
        rules:[
            {
                test:/\.jsx?$/,
                exclude: /node_modules/,
                use: [{
                    loader: "babel-loader",
                    options: { presets: ["react","es2015"] }
                }],
            },
        ]
    }
}
7 添加react支持
npm install react react-dom babel-preset-react --save

import React from 'react';
import ReactDOM from 'react-dom';
class IndexComponent extends React.Component{
render(){
return <h1>hello world!!!</h1>
}
}
var oBox = document.getElementById("box");
ReactDOM.render(<IndexComponent/>,oBox)
npm run dev 然后运行 index.html 文件查看效果
<!DOCTYPE html>
<htmllang="en">
<head>
<metacharset="UTF-8">
<title>首页</title>
</head>
<body>
<divid="box"></div>
</body>
<scriptsrc="app.bundle.js"></script>
</html>
8 添加样式支持
npm install css-loader style-loader --save
module.exports = {
    context:__dirname+"/app",
    entry:{
        app:"./index.js"
    },
    output:{
        path:__dirname+"/dist",
        filename:"[name].bundle.js"
    },
    module:{
        rules:[
            {
                test:/\.jsx?$/,
                exclude: /node_modules/,
                use: [{
                    loader: "babel-loader",
                    options: { presets: ["react","es2015"] }
                }],
            },
            {   //这里的内容是新增加的对样式的支持
                test: /\.css$/,
                use: ["style-loader", "css-loader"],
            },
        ]
    }
}
import React from 'react';
import ReactDOM from 'react-dom';
import styles from './css/index.css'; //这里内容属于新增加的
class IndexComponent extends React.Component{
render(){
return <h1>hello world!!!</h1>
}
}
var oBox = document.getElementById("box")
ReactDOM.render(<IndexComponent/>,oBox)
h1{
color: green;
}
  
9 添加web服务器支持
npm install webpack-dev-server --save
"dev": "./node_modules/.bin/webpack"
"dev": "./node_modules/.bin/webpack-dev-server --content-base dist"
webpack+babel+ES6+react环境搭建的更多相关文章
- es6+react环境搭建
		工具说明 Node Koa React Webpack 项目结构 - build 客户端代码的构建文件目录 - config 项目的配置文件 - docs 项目相关的文档目录 - lib 服务端库文件 ... 
- 重温 Webpack, Babel 和 React
		开始之前 在书写文章之前,我假设大家已经有了 JavaScript,Node 包管理工具,Linux 终端操作 这些基本技能,接下来,我将一步一步指引大家从头搭建一个 React 项目 最终实现的效果 ... 
- React 环境搭建及页面调试方法
		React 环境搭建及页面调试方法 |作者:RexFang |出处:http://www.cnblogs.com/rexfang/ |关于作者:Java 程序员一枚 |版权:本文版权归作者和博客园共有 ... 
- Webpack+React+ES6 最新环境搭建和配置(2017年)
		刚刚学习React,发现React在ES6下的语法才是本体,结合ES6新的语言特性,使组件化开发显得更加直观.而且现在的Angular2也开始使用支持强类型的TypeScript,转译(transpi ... 
- 最小白的webpack+react环境搭建
		本文也同步发表在我的公众号“我的天空” 从零开始,用最少的配置.最少的代码.最少的依赖来搭建一个最简单的webpack+react环境. 最近在玩webpack+react+移动端,那么第一步自然是搭 ... 
- es6开发环境搭建,babel 将es6转化成es5
		工欲善其事,必先利其器.所以我们第1节就是搭建一个基本的ES6开发环境.现在的Chrome浏览器已经支持ES6了,但是有些低版本的浏览器还是不支持ES6的语法,这就需要我们把ES6的语法自动的转变成E ... 
- react环境搭建及文件配置
		webpack简介 构建工具(基于Nodejs)node(v16)前端工程化. 环境搭建 创建一个空的package.json npm init webpack核心包(提供了API,插件) npm i ... 
- 从零开始react实战:云书签-1 react环境搭建
		总览篇:react 实战之云书签 本篇是实战系列的第一篇,主要是搭建 react 开发环境,在create-react-app的基础上加上如下功能: antd 组件库按需引入 ,支持主题定制 支持 l ... 
- Babel指南——基本环境搭建
		ECMAScript的现状 ECMAScript,本身是一个脚本语言的设计规范,基于此规范,有许多为人熟知的语言,如JavaScript.ActionScript等.而时至几年前,随着Node.js的 ... 
随机推荐
- java算法面试题:编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串,但要保证汉字不被截取半个, 如“我ABC”,4,应该截取“我AB”,输入“我ABC汉DEF”,6,应该输出“我ABC”,而不是“我ABC+汉的半个”。
			package com.swift; import java.util.Scanner; public class Hanzi_jiequ { public static void main(Stri ... 
- 二十一、MySQL NULL 值处理
			MySQL NULL 值处理 我们已经知道 MySQL 使用 SQL SELECT 命令及 WHERE 子句来读取数据表中的数据,但是当提供的查询条件字段为 NULL 时,该命令可能就无法正常工作. ... 
- 揭密 Vue 的双向绑定
			Vue 中需要输入什么内容的时候,自然会想到使用 <input v-model="xxx" /> 的方式来实现双向绑定.下面是一个最简单的示例 剖析Vue原理& ... 
- python3.7 迭代器和生成器
			#!/usr/bin/env python __author__ = "lrtao2010" #python3.7 迭代器和生成器 #迭代器协议: ''' 1.迭代器协议是指:对象 ... 
- Windows Server 2008 正式版下载汇总
			windows 2008是微软推出的新一代服务器专用系统版本, 具有良好的用户体验以及应用程序,windows 2008大幅提升了web服务以及应用程序的性能, 让企业在提供和维护资源服务的时候更加得 ... 
- 适合学习C语言开源项目——嵌入式脚本语言 Berry
			嵌入式脚本语言 Berry github网址 :https://github.com/Skiars/berry Berry 是一款面向小型嵌入式系统的脚本语言,目前发布了 0.1.0 版本.相比于其他 ... 
- [BZOJ3312][USACO]不找零(状压DP)
			Description 约翰带着 N 头奶牛在超市买东西,现在他们正在排队付钱,排在第 i 个位置的奶牛需要支付 Ci元.今天说好所有东西都是约翰请客的,但直到付账的时候,约翰才意识到自己没带钱,身上 ... 
- V4L2学习(二)结构介绍
			v4l2_device v4l2_device在v4l2框架中充当所有v4l2_subdev的父设备,管理着注册在其下的子设备.以下是v4l2_device结构体原型(去掉了无关的成员): struc ... 
- C#串口扫描枪的简单实现
			原文:C#串口扫描枪的简单实现 串口扫描枪的简单实现 基于串口通讯的扫描枪的实现,主要借助SerialPort类,表示串行端口资源.实现很简单: 工具:usb转RS232转接头/个,扫描枪/套, 扫描 ... 
- 继承Thread类使用多线程
			java实现多线程有两种方式,一种是继承Thread类,另外一种就是实现Runnable接口. 两种实现方法的优缺点: 使用Thread类实现多线程局限性就是不支持多继承,因为java是不支持类多继承 ... 
