webpack+babel+ES6+react环境搭建

步骤:

1 创建项目结构

注意: 先创建一个项目目录  react  这个名字自定义,然后进入到这个目录下面
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"
}
}

  

注意: 添加完成后就可以 通过  npm run dev 来打包编译 js文件

6 在dist目录下面新建index.html 文件,并且引入打包好的js文件 

index.html 文件内容:
 
<!DOCTYPE html>
<html lang="en">
  <head>
    <metacharset="UTF-8">
  <title>首页</title>
  </head>
  <body>
  </body>
  <scriptsrc="app.bundle.js"></script>
</html>

  

index.js文件内容:
 
doucment.write("hello world!!!!")

  

执行npm run dev 命令后 会在dist目录下面生成一个 app.bundle.js 的文件   运行index.html 文件查看效果
 

6 通过babel来使用es6

安装相关loader
 
npm install babel-loader babel-core babel-preset-es2015 --save
 
修改webpack.config.js 配置文件,添加规则
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
注意:这里有坑: 安装的时候报错,最大的问题是因为我们项目名称叫做  react  在package.json文件中有个name属性值为react  只需要把这个react值改成其他的就可以安装上 了
 

 
修改 app下面 index.js 文件
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 文件查看效果

修改dist下面 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 添加样式支持

安装css-loader 和 style-loader
 
npm install css-loader style-loader --save
 
 
修改配置webpack.config.js 配置文件
 
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"],
},
]
}
}

  

修改 index.js 文件
 
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)

  

在app目录下新建css目录 ,在css目录下 新建 index.css 文件  
h1{
color: green;
}
  
 
npm run dev  编译  然后运行 dist目录下index.html 文件 查看效果
 

9 添加web服务器支持

安装 webpack-dev-server
 
npm install webpack-dev-server --save 
 
修改package.json文件  
把:
 
"dev": "./node_modules/.bin/webpack" 
 
修改为:
 
"dev": "./node_modules/.bin/webpack-dev-server --content-base dist"

  

npm run dev   然后 在浏览器输入 http://loaclhost:8080 查看效果

webpack+babel+ES6+react环境搭建的更多相关文章

  1. es6+react环境搭建

    工具说明 Node Koa React Webpack 项目结构 - build 客户端代码的构建文件目录 - config 项目的配置文件 - docs 项目相关的文档目录 - lib 服务端库文件 ...

  2. 重温 Webpack, Babel 和 React

    开始之前 在书写文章之前,我假设大家已经有了 JavaScript,Node 包管理工具,Linux 终端操作 这些基本技能,接下来,我将一步一步指引大家从头搭建一个 React 项目 最终实现的效果 ...

  3. React 环境搭建及页面调试方法

    React 环境搭建及页面调试方法 |作者:RexFang |出处:http://www.cnblogs.com/rexfang/ |关于作者:Java 程序员一枚 |版权:本文版权归作者和博客园共有 ...

  4. Webpack+React+ES6 最新环境搭建和配置(2017年)

    刚刚学习React,发现React在ES6下的语法才是本体,结合ES6新的语言特性,使组件化开发显得更加直观.而且现在的Angular2也开始使用支持强类型的TypeScript,转译(transpi ...

  5. 最小白的webpack+react环境搭建

    本文也同步发表在我的公众号“我的天空” 从零开始,用最少的配置.最少的代码.最少的依赖来搭建一个最简单的webpack+react环境. 最近在玩webpack+react+移动端,那么第一步自然是搭 ...

  6. es6开发环境搭建,babel 将es6转化成es5

    工欲善其事,必先利其器.所以我们第1节就是搭建一个基本的ES6开发环境.现在的Chrome浏览器已经支持ES6了,但是有些低版本的浏览器还是不支持ES6的语法,这就需要我们把ES6的语法自动的转变成E ...

  7. react环境搭建及文件配置

    webpack简介 构建工具(基于Nodejs)node(v16)前端工程化. 环境搭建 创建一个空的package.json npm init webpack核心包(提供了API,插件) npm i ...

  8. 从零开始react实战:云书签-1 react环境搭建

    总览篇:react 实战之云书签 本篇是实战系列的第一篇,主要是搭建 react 开发环境,在create-react-app的基础上加上如下功能: antd 组件库按需引入 ,支持主题定制 支持 l ...

  9. Babel指南——基本环境搭建

    ECMAScript的现状 ECMAScript,本身是一个脚本语言的设计规范,基于此规范,有许多为人熟知的语言,如JavaScript.ActionScript等.而时至几年前,随着Node.js的 ...

随机推荐

  1. 当GetWindowText获取不到标题时可以用SendMessage

    GetWindowText所有父窗口标题基本可以获取到, 但是当获取父窗口下的子窗口控件标题文本时有时候就没那么好用了, 这个时候可以通过SendMessage发送消息来获取,也很简单,C/C++代码 ...

  2. http 实战练习

    http 实战练习 建立httpd服务器,要求提供两个基于名称的虚拟主机: (1)www.X.com,页面文件目录为/web/vhosts/x:错误日志为/var/log/httpd/x.err,访问 ...

  3. k8s使用自定义证书将客户端认证接入到API Server

    自定义证书使用kubectl认证接入API Serverkubeconfig是API Server的客户端连入API Server时使用的认证格式的客户端配置文件.使用kubectl config v ...

  4. mount: no medium found on /dev/sr0 找不到介质

    在VMware虚拟机中配置yum源时,执行 mount /dev/cdrom /mnt/cdrom 出现 mount: no medium found on /dev/sr0. 首先在/mnt 目录下 ...

  5. Python基础:输入与输出(I/O)

    来做一个NLP任务 步骤为: 1.读取文件: 2.去除所有标点符号和换行符,并把所有大写变成小写: 3.合并相同的词,统计每个词出现的频率,并按照词频从大到小排序: 4.将结果按行输出到文件 out. ...

  6. wireshark_1.6.2 使用笔记

    表示ip1是否有访问ip2,进行抓包

  7. Android引导页过多导致OOM内存泄漏

    摘要:前几天推广我们APP的时候,有些手机加载引导页的时候会闪退或崩溃,在Bugly显示是OOM异常.    然后Bugly上面显示的解决方案是: 该异常表示未能成功分配字节内存,通常是因为内存不足导 ...

  8. 关于mongodb的安装运行

    最近在学习node.js,在实例的项目中要用到mongodb做数据库.于是便记录一下mongodb的安装流程和遇到的坑: 1.下载地址:http://www.mongodb.org/downloads ...

  9. 史上最全的MSSQL笔记

    http://www.cnblogs.com/gameworld/archive/2015/09/08/4790881.html

  10. 4、CSS基础part-2

    1.background-1 ①设置background-image ②设置background-attachment为fixed 可以声明图像相对于可视区是固定的(fixed),因此不会受到滚动的影 ...