新手上路,请多多关照
0x00 上来就一个错,很快啊...
命令行执行
create-react-app my-app
报错如下:
看图说话,主要有三个问题
- 控制台输出有乱码
- C盘下少GTK相关的文件
- 安装canvas有问题
三个问题中,第一个问题排在首位,毕竟干扰我们排查错误;第二、三个问题按照顺序解决就好了。
0x01 控制台输出乱码问题
编码问题,网上有个多快好省的解决方案:
在当前控制台下执行chcp 65001。
至于为什么,暂不深究。理由:不是主线任务,记下来,抽空研究。
0x02 C盘下少GTK相关的文件
文件地址:http://ftp.gnome.org/pub/GNOME/binaries/win64/gtk+/2.22/gtk+-bundle_2.22.1-20101229_win64.zip
下载解压后,放在c:GTK目录下。
GTK是什么?不深究。理由:不是主线任务,记下来,抽空研究。
0x03 安装canvas有问题
网上找到一个链接:Windows下Node.js安装Canvas插件,总结一下文章中提到的几个需要安装的组件及顺序
windows-build-tools -> node-gyp -> GTK2 -> libjpeg-turbo -> Canvas
检查了一下自己机器的环境,下载安装libjpeg-turbo后执行
npm install canvas
至此,眼前的问题都已解决,再执行一下试试
create-react-app my-app
执行
cd my-app
npm start
浏览器访问:http://localhost:3000/
成了!
0x04 回顾
刚暂时忽略的两个问题,拿出来简单做一下了解
- chcp 65001 是什么?
- GTK是什么?
首先,chcp 65001 是什么?
chcp 65001 是将windows控制台的字符编码切换为UTF-8。
chcp命令
可以解释为:Changes the active console code page
功能:显示或设置活动代码页编号
65001是什么?
是个代码页编号。那除了65001外,还有哪些代码页编号呢?
437—最初的IBM PC代码页,实现了扩展ASCII字符集
737—希腊语
850—“多语言(Latin-1)”(西欧语言)
852—“斯拉夫(Latin-2)”(中欧及东欧语言)
855—西里尔(Cyril)字母
857—土耳其语
858—带欧元符号的“多语言”
860—葡萄牙语
861—冰岛语
863—法语加拿大英语
865—北欧
866—西里尔(Cyril)字母
869—希腊语
874—泰文字母
1250—东欧拉丁字母
1251—古斯拉夫语
1252—西欧拉丁字母ISO-8859-1.
1253—希腊语
1254—土耳其语
1255—希伯来语
1256—阿拉伯语
1257—巴尔
1258—越南
1254—土耳其语
936—简体中文(GBK)
950—繁体中文(大五码)
932—日文(Shift_JIS)
949—韩文(EUC-KR)
20000(CNS)以EUC编码的繁体中文CNS编码
20002(Eten)以EUC编码的繁体中文倚天码
20936(GB2312-80)以EUC编码的简体中文GB2312编码(老设备或嵌入式设备常见)
50227(ISO-2022-GB)简体中文的Esc序列编码,纯ASCII
50229(ISO-2022-CNS)繁体中文的Esc序列编码,纯ASCII
52936(HZ-GB-2312)以~{和~}分隔的简体中文GB2312编码,纯ASCII
54936—简体中文(GB18030)
10000—Macintosh Roman encoding(followed by several other Mac character sets)
10007—Macintosh Cyrillic encoding
10029—Macintosh Central European encoding
1200—UCS-2LE Unicode 小端序
1201—UCS-2BE Unicode 大端序
65000—UTF-7 Unicode
65001—UTF-8 Unicode
内容来自维基百科
第二个问题,GTK是什么?
来自维基百科的解释:
2002年3月11日,GTK2.0版正式发布。GTK 2是GTK后继版本,其新特性包括使用Pango改进的文本渲染、新主题引擎、使用ATK改进的可达性、完全转换到使用UTF-8的Unicode和更灵活的API。但是它和GTK 1不完全兼容,因此必须由程序员做移植工作。由于GTK 1更快、相对更简单或更加适合嵌入式应用,所以还被继续使用。
从GTK 2的2.8版起,它依靠程序库Cairo完成渲染,而这引入了矢量图形的支持。
大概有个印象就好了,关于图形图像渲染有关的组件。