原文链接:这里
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:作品存储加载
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
|-- 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 然后修改成下图所示并保存。
1 |
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。而且其角色和背景加载非常慢,应该是其背后图片类资源链接的都是外国的网站。