美文网首页
react流程搭建项目

react流程搭建项目

作者: 小棋子js | 来源:发表于2021-03-23 13:47 被阅读0次

直接用自己构建的模板

https://gitee.com/cwq1211/create-react-app

react项目构建使用脚手架:create-react-app

npm install -g create-react-app
create-react-app reactdemo
cd reactdemo
npm start

用webpack从零配置开始搭建React项目

技术栈:webpack4 + react + react-router-dom

1、初始化项目,安装插件

  • 先建立一个文件夹,然后初始化package.json
mkdir react-demo && cd react-demo //建立react-demo并进入react-demo
npm init -y //快速初始化package.json

然后就会发现react-dome生成一个package.json,我们安装的插件,信息都在这个文件里面。

  • 安装相关webpack的插件
    开始安装react的插件,首先要安装webpack的插件,我用yarn来管理插件,也可以用npm。
    需要安装的插件:
    1、webpack
    2、webpack-cli:webpack的命令工具,既然安装webpack,就必要安装这个
    3、webpack-dev-server:启动http服务
    4、webpack-merge: 引用通用的配置来组合,比如开发环境的配置和生产环境的配置共用一个common.js
yarn add webpack webpack-cli webpack-dev-server webpack-merge --dev 
  • 安装相关react的插件
    目前就安装react,react-dom
yarn add react react-dom
  • 安装相关babel的插件
    既然用react,那就需要用到babel的插件
    需要的插件
    1、babel-loader:文件处理器,加载js文件
    2、@babel/core:最新的版本,之前是babel-core,是babel的核心功能
    3、@babel/preset-env:也是最新的版本,之前是babel-preset-env。因为webpack不能识别es6以上,所以需要这个插件来转换es5
    4、@babel/preset-react:也是最新的版本,之前是babel-preset-react,用来转换react的语法
yarn add babel-loader @babel/core @babel/preset-env @babel/preset-react --dev
  • 安装html-webpack-plugin的插件
    自动生成html文件,尤其能随着编译的变化而变化,不需要手动改变bundle.js
//安装插件
yarn add html-webpack-plugin --dev

2、配置webpack

配置webpack之前,首先要考虑怎么配置webpack,为了后面方便维护或者方便管理的,我们通常会把开发环境和生产环境分开管理,各自修改或者维护。然后我就参考这个思维,就在项目根目录下新建一个config的文件夹,然后建立三个文件,一个是通用的配置(webpack.common.js),一个是开发环境的配置(webpack.dev.js),一个是生产环境的配置(webpack.prod.js),如图下:

image
  • 通用的配置
    开发和生产环境的通用配置放到这个,比如说设置入口,出口打包
//webpack.common.js
const path=require('path'); //路径的api
const HtmlWebpackPlugin=require('html-webpack-plugin');//引用html-webpack-plugin

module.exports={
//入口的设置
    entry:{
        app:'./src/index.js', //入口的文件名
    },

//http服务的设置
    devServer:{ //利用上面的webpack-dev-server插件
        port:1234 //端口号,默认是8080,8080这个端口号很容易被占用,前端应该不常出现。反正我喜欢设置1234
    },

//管理资源
module:{
        rules:[
            {
                //加载js
                test: /\.js$/,
                use: 'babel-loader',
                exclude: /node_modules/,
            }
        ]
 },

//出口的设置
    output:{
        filename:'[name].bundle.js',//命名文件
        path:path.resolve(__dirname,'../dist')//生成的位置
    }
}
  • 开发环境的配置
//webpack.dev.js
const common=require('./webpack.common.js');//引用通用配置
const merge=require('webpack-merge');//引用webpack-merge插件

module.exports=merge(common,{
    mode:'development', //开发的模式
})

目前的配置就简单点,后面需要的时候就再扩展

  • 生产环境的配置
//webpack.prod.js
const merge=require('webpack-merge');
const common=require('./webpack.common.js');

module.exports=merge(common,{
    mode:'production'
})
  • 既然用react和es6,那就需要配置.babelrc,就在项目的根目录下新建
//.babelrc
{
    "presets": [
        "@babel/preset-env", 
        "@babel/preset-react",
    ]
}
  • 我们一般用命令行来启动开发环境的运行,或者打包的。这个还要配置的,就在package.json里增加
//package.json
"scripts": {
    "test": "echo \"Error: no test specified\" && exit 1",
+   "dev": "webpack-dev-server --config config/webpack.dev.js --open", //开发环境,根据config文件夹下的webpack.dev.js文件的配置,--open这个是自动开启浏览器
+   "build": "webpack --config config/webpack.prod.js"//生产环境,根据config文件夹下的webpack.prod.js文件的配置
  },

webpack配置差不多到此为止了,如果还有问题的话,那就再回来改造~

开始react的表演

程序员通常喜欢用Hello World来开始的,那么我也从Hello React开始,看看webpack的配置对不对

  • 首先在项目的根目录下新建public,放index.html
//index.html
<!DOCTYPE html>
<html lang="en">
    <head>
        <title>react demo</title>
    </head>
    <body>
        <div id="root"></div>
    </body>
</html>

有没有发现,我还没引用bundle.js。然后这就需要在wbepack里配置

//webpack.common.js
  devServer:{ //利用上面的webpack-dev-server插件
     port:1234 //端口号,默认是8080,8080这个端口号很容易被占用,前端应该不常出现。反正我喜欢设置1234
  },

//新增的代码块
+ plugins:[
+     new HtmlWebpackPlugin({
+            template:'public/index.html',//指定的html模板,这个会自动帮我引用下面output出口设置的文件名。
+     })
+ ],
  • 在项目的根目录下新建src文件夹,然后再新建index.js文件
//index.js
import React from 'react';
import ReactDOM from 'react-dom';

ReactDOM.render(
    <h1>Hello React.js</h1>,
    document.getElementById('root'), 
)

应该差不多了,那就试试yarn start(package.json中的start)

yarn start

然后浏览器就会自动开启,就能看到大大的“Hello React”。

yarn build

就能看到dist的文件夹,这个是打包后的文件夹,可以看看html的代码,会发现多了一个script的引用,是html-webpack-plugin的作用。

零配置的搭建就到此为止,后会有期~

相关文章

网友评论

      本文标题:react流程搭建项目

      本文链接:https://www.haomeiwen.com/subject/vcnayhtx.html