继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

实现简单组件到部署服务器——react

冉冉说
关注TA
已关注
手记 353
粉丝 43
获赞 194

本人工作栈为dva+antd,使用阿里开源出来的组件有一段时间之后,决定不依赖阿里的框架自己打个环境写一些组件出来,一来为了熟悉工作流程,二来也是为了更好的理解原理,从而更好的满足工作中的需求

https://img2.mukewang.com/5d32b0a400018e3500060007.jpg

二次元萌图

源码地址:https://github.com/jdkwky/my-react-example

预览地址:http://47.94.218.152  (目前只兼容chrome和IEedge)

1. 技术点 react + webpack + antd

2. 学习流程

  • 首先电脑上要有nodejs环境,本文并不涉及nodejs,主要是用nodejs环境中的npm安装需要的依赖包(nodejs安装即可,npm如果在下载包的时候很慢,可以将镜像换成淘宝的镜像)

  • npm i create-react-app -g 全局安装create-react-app脚手架

  • create-react-app创建自己的工程文件

  • 写自己的webpack配置文件

  • 跨域请求时,在webpack中配置代理,在服务器上采用nginx代理转发

  • 打包

  • 部署到服务器中

3. 详解

安装nodejs环境和用create-react-app创建react脚手架过程省略,因为比较简单,安装都比较方便,不会出什么问题

  • webpack配置文件

    devServer: {
    contentBase: './public',
    publicPath: '/',
    historyApiFallback: true,
    inline: true,
    proxy: {
      '/search/*': {
        target: 'https://image.baidu.com',
        changeOrigin: true
      }
    }
    },<!--当访问/search/路径下的所有url时,均走image.baidu.com这个域名-->
  1. 对webpack简单的理解可以参考博文:webpack初印象

  2. 在本程序中的一个难点在于既想要引入antd的样式文件,又想要使用css modules,本程序中的解决方案就是针对不同目录中的css文件分别进行匹配,antd组件中的样式文件一定都在node_modules文件夹中,而本地自己写的文件一定都在src文件夹中,具体解决方案详见webpack.config.js

  3. 在文件配置中遇到的坑详见 react-webpack-antd--环境篇

  4. 遇到跨域问题在本地的解决方案为在本地配置代理:

部署服务器

服务器申请的为centos阿里云服务器,将打包好的静态文件部署在nginx中,nginx服务器默认监听80端口,启动nginx时可能访问不到,这时需要在“安全组规则”中添加一条规则:


https://img1.mukewang.com/5d32b09c0001037c06390095.jpg

nginx监听80端口



作者:jdkwky
链接:https://www.jianshu.com/p/7231659644b5


打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP