0.背景

前后差不多花了两天时间,主要是因为云服务器第一次搭建没有经验,差点把环境毁了。后来在本地搭建成功后才把中间关系整理明白。
配置环境:CentOS 7.5 + 宝塔7.1.1 + 腾讯云

1.Scratch3.0

scratch3.0是一个款积木式儿童编程软件,分为单机版和网页版(功能差不多),scratch3.0整个目录结构如下:
https://github.com/LLK

scratch-gui: 核心库,对于界面有定制化的在这个库下进行
scratch-vm:虚拟机,管理状态并执行业务逻辑。
scratch-blocks:代码积木块
scratch-render:舞台渲染,在舞台区域出现的基于WebGL的处理器。
scratch-audio:声音拓展
scratch-l10n:国际化
scratch-paint:绘图拓展
scratch-storage:作品存储加载

|-- build						#编译后的文件夹,不发布没有此文件夹
|-- dist
|-- docs
|-- node_modules       			#npm安装时产生此文件,默认没有
|-- src
	|-- components              #UI组件,负责页面呈现
	|-- containers				#容器组件,承载容器组件业务逻辑
	|-- css						#全局通用CSS
	|-- examples				#集成测试用例
		|-- extensions          #拓展案例
	|-- lib						#插件及高阶组件
		|--audio	 			#声音插件
		|-- backpack			#背包插件
		|-- default-project     #默认项目
		|-- libraries			#素材库相关	
		|-- video				#视频模块
	|-- playground				#编译后页面的模板
	|-- reducers				#全局状态控制
|-- static						
	|--favicon.ico				#网站图标
|-- test						#测试用例
|-- translations				#翻译库
|-- README.md
|-- package.json
|-- webpack.consig.js    		#配置文件

2.本地搭建

Scatch3.0搭建需要Node.js环境,在宝塔软件商店安装PM2管理器(内置Node.js 和NPM)同时安装SSH终端。

下载

在上文的GitHub链接中下载scratch-gui。(有的博文中说需要下载blocks和vm组件,经过本地实际测试发现gui模块就可以实现功能,目前还没有发现其他问题
https://github.com/LLK/scratch-gui

修改npm

安装需要使用npm,但是默认npm的地址访问速度太慢,中间卡住了好几次,无奈只有删除了node_modules并修改npm默认地址才得以解决。打开 /root/.npmrc 然后修改成下图所示并保存。

registry=https://registry.npm.taobao.org

开始安装

如果你的英文好的话,在scratch-gui目录下有个README.md,里面有详细的安装部署过程,不过是英文的。如果英文不是很好,不妨试试下面的方法(PS:中间先在虚拟机上搭建成功才放到服务器上的)
使用SSH登录后,切换到scratch-gui目录下。然后输入npm install

过一会会出现下面的图,表示成功

如果中间出现了问题,可以删除node_modules重新运行npm install。还有一个问题下载chomedriver时会出错,这时可以手动下载chomedriver并放到服务器中,重新运行npm isntall
然后运行 npm start

最后程序停在:complied successgully 按ctrl+z停止就行。
这时本地热发布构建成功了,可以通过访问http://localhost:8601 访问scratch3.0。如果你是用虚拟机搭建的,记得关闭虚拟机的防火墙或者打开相应端口,通过访问你虚拟机的IP加8601端口访问。

3.部署发布

上一步中,可以直接通过IP+端口的方式直接访问scratch3.0。但是终端一旦关闭那么就不能访问到了。所以我们需要生成一下项目。
在终端中输入 npm run build

然后程序执行到如下界面表示成功

然后scratch-gui目录下会生成一个build文件夹,这个就是网站用的静态文件。把这个build整个文件复制到服务器的网站目录下(www目录即可)。然后使用宝塔的网站搭建功能把网站目录指向build目录。
访问网站的地址即可。

4.后记

1.搭建过程中测试本地服务器和远程服务器, 建议先在本地服务器测试再向远程服务器发布,中间不小心差点毁了远程服务器的环境。
2.scratch3.0 感觉还是有点问题,测试中实际发现同样是发布网站,本地访问的速度比远程服务器的要快的多,远程服务器访问scratch至少10秒以上,应该是JS文件的问题,发布后的一个JS文件有20多M。而且其角色和背景加载非常慢,应该是其背后图片类资源链接的都是外国的网站。


返回目录:开发与教程/scratch