摆脱create-react-app,来让我们自己搭建一个react脚手架

  1. 创建一个文件夹REACT-CNODE-TEACH
    mkdir REACT-CNODE-TEACH
  2. 在文件夹中npm init(我们使用npm来管理依赖包)
    摆脱create-react-app,来让我们自己搭建一个react脚手架
    一路点回车就行,当然你也可以去详细配置下工程信息。
  3. 装一个webpack
    摆脱create-react-app,来让我们自己搭建一个react脚手架
  4. 一个react工程,怎么能不安装react?
    摆脱create-react-app,来让我们自己搭建一个react脚手架
  5. 这个时候我们要配置一下webpack,我们先在工程根目录创建一个文件夹build,然后创建一个webpack配置文件webpack.config.js。这时,我们可以简单配置一下webpack:
const path = require('path')
const HTMLPlugin = require('html-webpack-plugin')

module.exports = {
    //应用入口
    entry: {
        app: path.join(__dirname, '../client/app.js')
    },

    //打包的文件路径
    output: {
        filename: '[name].[hash].js',
        path: path.join(__dirname, '../dist'),
        //静态资源输出路径
        publicPath: ''
    },

    //用于识别jsx
    module: {
        rules: [
            {
                test: /.jsx$/,//正则表达式
                loader: 'babel-loader'
            },
            {
                test: /.js$/,//正则表达式
                exclude: path.join(__dirname, '../node_modules'),
                loader: 'babel-loader'
            }
        ]
    },

    plugins: [
        //生成一个html文件,同时注入entry
        new HTMLPlugin()
    ]
}
  1. 这个时候我们就可以用webpack来编译工程了。为了操作方便,我们自定义一个npm命令:
    摆脱create-react-app,来让我们自己搭建一个react脚手架
  2. 接下来我们来安装babel,
    摆脱create-react-app,来让我们自己搭建一个react脚手架
  3. babel要想正常使用,还需要在工程根目录添加babel配置文件.babelrc.js
 {
    //babel默认编译es6 es7 es8 不认识jsx 需要配置
    "presets": [
        ["es2015", {"loose": true}],
        "react"
  ]
}
  1. babel中用到的包也要安装一下
    摆脱create-react-app,来让我们自己搭建一个react脚手架
  2. 此时一个react工程最初的样子已经出来了
    摆脱create-react-app,来让我们自己搭建一个react脚手架
    代码仓库在此