React项目环境搭建demo

1、新建一个文件夹,ctrl + R 打开cmd 控制台,进入该文件夹,运行npm init;下面是我的目录

c:\Users\Administrator\Desktop\three\练习\React\webpack\webpack009>npm init

然后一直enter默认到最后一步,初始化一个package.json文件

2、npm安装需要用到的依赖模块:

npm install webpack webpack-dev-server babel babel-core babel-loader babel-preset-react babel-preset-env
 css-loader style-loader --save-dev

说明:

webpack模块主要是用来打包开发及依赖的各模块为一个js,比如打包成src文件夹中的bundle.js文件

webpack-dev-server模块在这里主要作为web服务器作用

babel相关模块主要是用来转换编译的,把用新标准写的js转化成随处可用的版本

css-loader和style-loader模块是在js文件中import了css文件,css-loader用于在js中加载css,style-loader把加载的css作为style标签内容插入到html中。

3、安装React本身依赖模块,代码如下:

npm install react react-dom react-router react-router-dom  --save

为什么上面的--save-dev 而下面的用--save;-dev的是开发(devlopment)用到的依赖模块,而正式的不会用到,而直接--save的代码是发布到正式环境还需要的依赖的。

4、新建一个public文件夹,一个app文件夹,public文件夹下面新建一个index.html,代码如下:

<html>
    <head>
        <title>reactDemo</title>
    </head>
    <body>
        <div id="root"></div>
    </body>
    <script src="./bundle.js"></script>
</html>

5、在app文件夹下面新建一个main.js,主要是进行路由配置的:

import React from "react";
import { render } from "react-dom";
import { BrowserRouter as Router, Route, Redirect, Link, Switch } from "react-router-dom";

export class App extends React.Component {
    render() {
        return (
            <div>{this.props.children}</div>
        )
    }
}

const routes = (
    <Router>
        <div>
            <Switch>
                <Route path='/' render={(props) => (
                    <App>
                        <Switch>
                            <Route exact path="/" component={Home} />
                            <Route path="/demo" component={Demo} />
                        </Switch>
                    </App>
                )} />
                <Route render={() => (<Redirect to="/" />)} />
            </Switch>
        </div>
    </Router>
)

render(routes, document.getElementById("root"))

这里的路由配置中引入了两个依赖模块,Home和Demo,但这两个模块还没有建立,下面新建这两个模块的文件,

6、在app文件夹下面再新建一个home文件夹,一个demo文件夹;在home文件及下面新建一个home.jsx文件,代码如下:

import React from "react";
import { Link } from "react-router-dom";

class Home extends React.Component {
    render() {
        return (
            <div>
                <header>
                    <h3>首页</h3>
                </header>
                <div style={{display: "flex"}}>
                    <div>home</div>
                </div>
            </div>
        )
    }
}

export default Home

7、demo文件夹下面新建下面新建一个demo.jsx文件,代码如下:

import React from "react";

class Demo extends React.Component{
    render() {
        return (
            <div>demo</div>
        )
    }
}

export default Demo
8、将这两个模块在之前的main.js中引入
import Home from "./home/home.jsx";
import Demo from "./demo/demo.jsx";

9、在public文件夹的同级新建一个webpack.config.js,代码如下:

module.exports = {
    entry: __dirname + "/app/main.js",
    output: {
        path: __dirname + '/public',
        filename: "bundle.js"
    },
    devServer: {
        contentBase: "./public",
        historyApiFallback: true,
        inline: true
    },
    module: {
        rules: [
            {
                test: /(\.js|\.jsx)$/,
                use: {
                    loader: "babel-loader",
                    options: {
                       presets: ["react", "env"]
                    }
                },
                exclude: /node_modules/
            },
            {
                test: /\.css$/,
                use: [
                    {
                        loader: "style-loader"
                    },
                    {
                        loader: "css-loader"
                    }
                ]
            }
        ]
    }
}
10、修改package.json配置启动,代码如下
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
    "start": "webpack",
    "server": "webpack-dev-server --open"
  }

11、npm run server 启动程序。

注意:如果由于安装的依赖模块版本升级,比如说下面这个错误,可以依照提示重新安装一个webpack-cli模块解决。

The CLI moved into a separate package: webpack-cli


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值