webpack+babel+es6+react环境搭建

本文为简单搭建一个react的初始开发环境。

1.工程目录

新建一个工程目录(比如react-demo),在window中cmd控制台进入该目录下,执行npm init初始化目录,如下


在工程目录下新建文件src用来存放源文件,新建文件dist用来存放打包后的文件,在src内新建文件夹component用来存放组件,新建文件index.js表示打包的入口文件,在根目录下新建webpack.config.js作为webpack的配置文件.如下:


2.安装webpack

局部安装

npm install webpack --save-dev
在webpack.config.js中加入以下配置:
var path = require('path');

module.exports = {
    entry: {
        app: "./src/index.js"
    },output: {
        path: path.resolve(__dirname,'dist'),filename: '[name].bundle.js'
    }
}

3.在package.json中添加命令

在包文件中的script中添加一条命令,然后在控制台输入npm run dev执行打包命令:

{
  "name": "react-demo","version": "1.0.0","description": "","main": "index.js","scripts": {
    "test": "echo \"Error: no test specified\" && exit 1","dev": "./node_modules/.bin/webpack"   //执行webpack命令
  },"author": "","license": "ISC","devDependencies": {
    "webpack": "^2.5.1"
  }
}

4.支持es6和react

项目安装babel,如下

npm install babel-loader babel-core babel-preset-es2015 --save
项目安装react,如下:
npm install react react-dom babel-preset-react --save

在webpack加入配置:
var path = require('path');

module.exports = {
    entry: {
        app: "./src/index.js"
    },filename: '[name].bundle.js'
    },module: {
        rules: [
            {
                test: /\.jsx?$/,exclude: path.resolve(__dirname,'/node_modules/'),loader: 'babel-loader',options: {
                    presets: ['es2015','react']
                }
            }
        ]
    },// 在import的时候可以省略文件名后缀
    resolve: {
        extensions: ['.js','.jsx','.json','.conffee']
    }
}
在入口文件index.js中写入以下代码
import React from 'react';
import ReactDOM from 'react-dom';

class IndexComponent extends React.Component{
    render() {
        return <h1>Hello World!</h1>
    }
}

var dom = document.getElementById('app');

ReactDOM.render(
    <IndexComponent />,dom
)
dist目录下新建一个index.html,插入打包后的js文件,如下:
<!DOCTYPE html>
<html lang="en">
<head>
    <Meta charset="UTF-8">
    <Meta name="viewport" content="width=device-width,initial-scale=1.0">
    <Meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    
</head>
<body>
    <div id="app"></div>
    <script src="./app.bundle.js"></script>
</body>
</html>
在浏览器打开,f12审查元素:



另外组件在写css时候可能要用到css-loader等一系列加载器,我们这不累赘。

5.安装webpack服务器

安装webpack-server-dev,如下:

npm install webpack-server-dev --save
修改package.json文件下的dev命令为:
"dev": "./node_modules/.bin/webpack-dev-server --content-base dist"
运行npm run dev,在浏览器中输入localhost:8080查看结果

相关文章

一、前言 在组件方面react和Vue一样的,核心思想玩的就是组件...
前言: 前段时间学习完react后,刚好就接到公司一个react项目...
前言: 最近收到组长通知我们项目组后面新开的项目准备统一技...
react 中的高阶组件主要是对于 hooks 之前的类组件来说的,如...
我们上一节了解了组件的更新机制,但是只是停留在表层上,例...
我们上一节了解了 react 的虚拟 dom 的格式,如何把虚拟 dom...