标签:npm 工程 启动 示例 react 版本 准备 path
看到这一章,很多网友可能会奇怪,【示例工程准备】有什么可说的,照着例子搭个简单架构不就行了。但是因为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源,切换为淘宝源,要不然项目初始化的时候,下载会让你崩溃。
标签:npm,工程,启动,示例,react,版本,准备,path 来源: https://www.cnblogs.com/LW1112/p/15705764.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。