Scratch www 系统搭建
原文地址:https://blog.csdn.net/litianquan/article/details/82735809
Scratch www要基于Nodejs的环境才可以运行,我尝试了在Windows、Ubuntu、CentOS等操作系统上安装其环境,安装node环境比较简单,但是不同系统在编译代码方面问题较多,在Windows上必须要有Microsoft Visual Studio环境,Ubuntu上面又相关依赖又有点不同。最终,在CentOS上搭建成功,现将搭建步骤记录如下:
一、环境准备
1、安装配合软件
因为代码需要编译,所以要提前将所需要的几个组件进行安装。
- git(从github上获取代码)
- python(有些Nodejs模块需要用到python)
- gcc(在编译的时候会用到)
- gcc-c++(在编译的时候会用到)
- openssl-devel(在编译的时候会用到)
- make(在编译工具)
执行下列代码:
yum -y install git gcc gcc-c++ openssl-devel make python
2、使用curl下载并安装nodejs yum源
搭建Nodejs环境方式有很多,比如下载包或用yum安装等,我是使用yum安装。在安装之前要指定Nodejs的源。
curl --silent --location https://rpm.nodesource.com/setup_7.x | bash -
二、Nodejs安装
1、执行命令安装node
yum install -y nodejs
注:这里面的版本不需要指定,它是根据上一步中指定的源,如果用6.x的源,就会安装6系列的最新版。
2、测试安装是否成功
node -v
# v6.9.1
npm -v
# v3.10.8
注:node安装完成之后,会将node和npm自动设置成服务。但是node自带npm不一定是最新版本,可以使用下列命令,升级npm。
npm i npm -g
三、scratch www 安装
1、安装准备
按照scratch github上说明,原则上是不需要进行提前准备,但是在编译过程中会提示一些信息,例如下列信息。为了避免错误,总结之前的安装过程,可以讲一些模块提前进行安装。
- npm WARN prefer global i18next-conv@2.5.0 should be installed with -g
- npm WARN prefer global jshint@2.9.4 should be installed with -g
- npm WARN prefer global node-gyp@3.4.0 should be installed with -g
(1)webpack
npm install webpack -g
(2)其他辅助
- npm install i18next-conv -g
- npm install jshint -g
- npm install node-gyp -g
2、获取工程代码
执行下列命令:
git clone https://github.com/LLK/scratch-www.git
注:代码检出之后会自动创建scratch-www目录
3、Build代码
(1)进入目录
cd scratch-www
(2)安装node-sass
正常情况下,在执行install命令时,会自动安装node-sass依赖。但是在实际过程中,自动下载和编译node-sass经常会出错,即使手动安装的node-sass也会出错。在我的安装过程中,我使用的是从阿里库中编译好的node-sass,执行下列命令:
- npm install -g cnpm --registry=https://registry.npm.taobao.org
- cnpm install node-sass@3.11.2
注:默认安装的node-sass版本是3.3.3,我安装的是最新版本。
(3)Build scratch
分别执行下列命令:
- npm install
- npm run build
(4)运行
如果在build过程中没出现什么错误,编译成功之后就可以通过下列命令,运行scratch www。
npm start
注:以上命令均需要在scratch-www目录下执行。
如果屏幕上显示出正常启动了8333端口。那么就可以通过浏览器访问了。
四、作为服务运行
node应用通过npm来执行,但是每次执行都需要一直保持,一旦关闭当前Terminal,程序就将终止。为了保持程序持续运行,可以使用forever
(1)安装forever
npm install forever -g
(2)进入应用目录运行程序
forever start app.js
也可以通过下面的方式运行:
forever start -c "npm start" ./
可以通过下面命令查看正在运行的应用:
forever list
Scratch www 系统搭建的更多相关文章
- 基于Spring+SpringMVC+Mybatis的Web系统搭建
系统搭建的配置大同小异,本文在前人的基础上做了些许的改动,重写数据库,增加依据权限的动态菜单的实现,也增加了后台返回json格式数据的配置,详细参见完整源码. 主要的后端架构:Spring+Sprin ...
- Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程)
Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程) 声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级 ...
- 【web】 亿级Web系统搭建——单机到分布式集群
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架 ...
- WIN7 64位系统搭建WINCE6.0系统遇到的问题
WIN7 64位系统搭建WINCE6.0系统遇到的问题 安装顺序如下: .先装Visual Studio2005: .安装Visual Studio2005 Service Pack 1: .安装Vi ...
- Unity + iBatis + Asp.net Mvc 系统搭建
Unity + iBatis + Asp.net Mvc 系统搭建 之前用EntityFramework Code First做了一些小项目,很是方便:后来在一个 Java 项目中接触了myBatis ...
- [转]亿级Web系统搭建:单机到分布式集群
当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层 ...
- 性能测试五十:Jmeter+Influxdb+Grafana实时数据展示系统搭建
如果用生成jtl文件再分析结果的方式的话,每一次请求就会往jtl里面写一条数据,在进行长时间的稳定性测试的时候,特别是当TPS很高的时候,写入的数据会非常的大,这个时候等稳定性测试完成,再对jtl进行 ...
- Ubuntu系统搭建SVN服务器
Ubuntu系统搭建SVN服务器 参考地址:http://git.devzeng.com/blog/aliyun-ubuntu-svn-server.html 安装软件 依次在终端中执行下面的命令安装 ...
- [转]Linux 微擎系统搭建
本文转自:https://www.cnblogs.com/voidking/p/5296552.html 前言 时隔一年半,再次接触微信公众平台开发.相比于掌上大学.圈里.微站ABC.图灵机器人.小i ...
随机推荐
- Linux下C++开发常用命令
本页面记录本人在Linux下进行C++开发时使用的常用命令,注意这里不包括比如ls,mv等linux命令,这里会持续更新.首先假设你只有一个源程序文件,叫vec.cpp,编译后的可执行程序叫vec(本 ...
- 【文档】三、Mysql Binlog事件类文件和类型
在内部,服务器使用C++类文件来表示binlog事件.标准在log_event.h文件中,这些类的方法代码在log_event.cc中. log_event是基础类.其他的详细的事件子类都是来源于他. ...
- 看过ruby相关书籍
<ruby编程语言> <crafting rails applications> <agile web developemnt> <build awesome ...
- centos6 vps部署rails
centos 6 vps初始化部署rails应用1 ssh登录 vpsssh -p port root@server_ip_address 2 添加用户 adduser usernamepasswd ...
- WPF自定义Button样式(按钮长度随Content长度自适应)
代码如下: <Style x:Key="ButtonStyle" TargetType="Button"> <Setter Property= ...
- concurrency基础
Runnable 一个执行任务,没有返回值,也不能抛出受检查异常 Callable 一个执行任务有返回值,也能抛出受检查异常 Future 表示执行任务的生命周期,任务的生命周期为:创建,提交,开始, ...
- 图像RGB2YUV与YUV2RGB格式互转介绍
1 YUV格式与RGB格式说明 由于不同国家的电视信号系统支持的图像格式不同,有YUV格式成像,也有RGB格式成像,因此为了保证兼容性,需要进行RGB与YUV格式的互转. 另外YUV格式具有亮度信息和 ...
- vue+vuex+axios从后台获取数据存入vuex,组件之间共享数据
在vue项目中组件间相互传值或者后台获取的数据需要供多个组件使用的情况很多的话,有必要考虑引入vuex来管理这些凌乱的状态,今天这边博文用来记录这一整个的过程,后台api接口是使用webpack-se ...
- VFL子视图居中
今天做UI用VFL适配在View上添加一个图片想让指定宽高的图片居中显示,我用下面的代码想着能实现可是出来的效果并没有居中. UIImageView *headView=[[UIImageView a ...
- Delphi 通得进程ID获取主窗口句柄
只知道进程ID,获取主窗口句柄的方法如下: 通过EnumWindows枚举所有窗口 使用GetWindowThreadProcessID,通过窗口句柄获取进程ID 比便获取的进程ID与当前已知的进程I ...