第3章-示例工程准备(一)

因为node和npm版本的更新,导致了书中提供的项目实际运行中爆出了种种奇怪的错误。

对我这种【react】和【webRTC】的新手来说,第一步就迎来了巨大的挑战。可能有的网友还会说:“那把node版本回退到书中示例版本不就行了?”。但是现实却够呛,因为我这边的学习都是在用公司电脑进行的,公司现在项目都是基于最新版去开发的,来回切换版本,既麻烦,也不可取。后续,曾去书友群寻求亢老师的帮助,但是亢老师这边没有对这个示例项目升级的想法和打算,那么就只能自己去研究了。。。痛苦面具。。。

现在将框架搭建过程中遇到的几个问题,记录在此,希望可以帮助到同样在用此书学习的书友(当然,不需要使用最新版本node和npm的同学,请忽略,老鸟,请忽略):

1.现有架构提供的各种插件版本较老,无法在新版本的环境上运行,一直提示升级,该怎么处理?

// 安装
npm install -g npm-check-updates
// 检查更新
ncu
// 升级packjson.json
ncu -u
// 安装
npm isntall

安装完成后,启动失败,提示需要某些插件,按提示下载即可。原因吗,自然是新版本的插件需要其它插件的支持,无需多言。

2.启动项目时,启动报错,显示启动命令无法识别,该怎么处理?

  最简单粗暴的方法,就是从【package.json】中删掉【scripts>start】中的证书相关的命令(就是--https后面那一届),如果一定要带证书启动,请参考在【CSDN】上面【加菲猫的狗】所写的【react 项目以 https 协议启动】这篇文章。链接如下:

  https://blog.csdn.net/mynewdays/article/details/117460211

3.启动项目时,启动报错,显示无法识别【devServer】下的contentBase,该怎么处理?

  此项存在于【webpack.config.js】中的,是用于指定加载内容目录的,在新版本已经弃用,新手同学,建议删除此项,用默认指定的【public】目录,上面的输出目录也同样指到此目录。

  如果一定要自己指定加载目录的话,请参考以下示例代码:

const path = require('path');
 
module.exports = {
  devServer: {
    static: {
      directory: path.join(__dirname, 'public'),
    },
  },
};

4.项目成功启动,没有报错,但是提示【此页面无法访问】,该怎么处理?

  将【webpack.config.js > devServer】中的【host】项,改为本机地址

5.项目成功启动,没有报错,但是没有显示路由中对应的页面,该怎么处理?

  这个问题呢,是由于【react】版本升级,路由使用规则、关键字等更改导致。需要处理的自然也就是路由界面【App.jsx】页面,示例代码如下:

import React from "react";
import { HashRouter as Router, useRoutes } from "react-router-dom";
import Samples from "./Samples";
import TurnCamera from  './TurnCamera'

/**
 * @description: 路由配置
 */
class App extends React.Component {
  /**
   * @description: 路由信息
   */
  rou() {
    let routes = useRoutes([
      { path: "/", element: <Samples /> },
      { path: "turnCamera", element: <TurnCamera /> },
    ]);
    return routes;
  }
  render() {
    return (
      <Router>
        <this.rou />
      </Router>
    );
  }
}

export default App;

至此,大功告成,项目成功启动。

备注:最好将npm源,切换为淘宝源,要不然项目初始化的时候,下载会让你崩溃。

posted on 2021-12-18 19:14  心若随风  阅读(23)  评论(0)    收藏  举报