第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源,切换为淘宝源,要不然项目初始化的时候,下载会让你崩溃。
本文来自博客园,作者:心若随风,转载请注明原文链接:https://www.cnblogs.com/LW1112/p/15705764.html