原文地址: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上说明,原则上是不需要进行提前准备,但是在编译过程中会提示一些信息,例如下列信息。为了避免错误,总结之前的安装过程,可以讲一些模块提前进行安装。

  1. npm WARN prefer global i18next-conv@2.5.0 should be installed with -g
  2. npm WARN prefer global jshint@2.9.4 should be installed with -g
  3. npm WARN prefer global node-gyp@3.4.0 should be installed with -g

(1)webpack

npm install webpack -g
 

(2)其他辅助

  1. npm install i18next-conv -g
  2. npm install jshint -g
  3. 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,执行下列命令:

  1. npm install -g cnpm --registry=https://registry.npm.taobao.org
  2. cnpm install node-sass@3.11.2

注:默认安装的node-sass版本是3.3.3,我安装的是最新版本。

(3)Build scratch

分别执行下列命令:

  1. npm install
  2. 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 系统搭建的更多相关文章

  1. 基于Spring+SpringMVC+Mybatis的Web系统搭建

    系统搭建的配置大同小异,本文在前人的基础上做了些许的改动,重写数据库,增加依据权限的动态菜单的实现,也增加了后台返回json格式数据的配置,详细参见完整源码. 主要的后端架构:Spring+Sprin ...

  2. Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程)

    Windows7 64位系统搭建Cocos2d-x-2.2.1最新版以及Android交叉编译环境(详细教程) 声明:本教程在参考了以下博文,并经过自己的摸索后实际操作得出,本教程系本人原创,由于升级 ...

  3. 【web】 亿级Web系统搭建——单机到分布式集群

      当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架 ...

  4. WIN7 64位系统搭建WINCE6.0系统遇到的问题

    WIN7 64位系统搭建WINCE6.0系统遇到的问题 安装顺序如下: .先装Visual Studio2005: .安装Visual Studio2005 Service Pack 1: .安装Vi ...

  5. Unity + iBatis + Asp.net Mvc 系统搭建

    Unity + iBatis + Asp.net Mvc 系统搭建 之前用EntityFramework Code First做了一些小项目,很是方便:后来在一个 Java 项目中接触了myBatis ...

  6. [转]亿级Web系统搭建:单机到分布式集群

    当一个Web系统从日访问量10万逐步增长到1000万,甚至超过1亿的过程中,Web系统承受的压力会越来越大,在这个过程中,我们会遇到很多的问题.为了解决这些性能压力带来问题,我们需要在Web系统架构层 ...

  7. 性能测试五十:Jmeter+Influxdb+Grafana实时数据展示系统搭建

    如果用生成jtl文件再分析结果的方式的话,每一次请求就会往jtl里面写一条数据,在进行长时间的稳定性测试的时候,特别是当TPS很高的时候,写入的数据会非常的大,这个时候等稳定性测试完成,再对jtl进行 ...

  8. Ubuntu系统搭建SVN服务器

    Ubuntu系统搭建SVN服务器 参考地址:http://git.devzeng.com/blog/aliyun-ubuntu-svn-server.html 安装软件 依次在终端中执行下面的命令安装 ...

  9. [转]Linux 微擎系统搭建

    本文转自:https://www.cnblogs.com/voidking/p/5296552.html 前言 时隔一年半,再次接触微信公众平台开发.相比于掌上大学.圈里.微站ABC.图灵机器人.小i ...

随机推荐

  1. 异常捕获设置HTTPStatus

    第一步:创建一个异常类 package com.payease.exception; /** * @Created By liuxiaoming * @CreateTime 2017/12/12 下午 ...

  2. Asp.Net Cache缓存技术学习

    本文参考自Fish Li的细说 ASP.NET Cache 及其高级用法 一.前言,相信大多数做网站开发的都知道缓存技术对于网站的重要性,它对于网站的性能优化起着至关重要的作用. 关于缓存的技术大致有 ...

  3. SVN linux 服务器端配置

    一. SVN 简单介绍 Subversion(SVN) 是一个开源的版本号控制系統, 也就是说 Subversion 管理着随时间改变的数据. 这些数据放置在一个中央资料档案库 (repository ...

  4. 聊一聊Iterable与Iterator的那些事!

    前言 欢迎关注公众号:Coder编程 获取最新原创技术文章和相关免费学习资料,随时随地学习技术知识! 在上一篇文章通过面试题,让我们来了解Collection,我们会发现Collection接口之上还 ...

  5. master线程的主循环,后台循环,刷新循环,暂停循环

    InnoDB存储引擎的主要工作都是在一个单独的后台线程master thread中完成的.master thread的线程优先级别最高.其内部由几个循环(loop)组成:主循环(loop).后台循环( ...

  6. IOS9网络请求报错:The resource could not be loaded because the App Transport Security policy requires the use of a secure connection.

    今天下载Xcode7试了下,运行项目时报上面的错误,网上查了下原来iOS9引入了新特性App Transport Security (ATS).详情:App Transport Security (A ...

  7. “PPT中如何插入和提取swf文件”的解决方案

    解决方案: 如何在PPT中插入swf文件: 1.依次单击Office按钮,Powerpoint选项,勾选“在功能区显示‘开发工具’选项卡”后,确定: 2.单击“开发工具”选项卡中的“其他控件”按钮,然 ...

  8. request发送json-rpc请求

    直接贴代码吧: let url = '/rest/2.0/res/auth_token?session=' + session url += getUrlTokenQuery() const meth ...

  9. HTTP2 概述

    HTTP/2,也就是超文本传输协议第2版,不论是1还是2,HTTP的基本语义是不变的,比如方法语义(GET/PUST/PUT/DELETE),状态码(200/404/500等),Range Reque ...

  10. 在弹框中获取foreach中遍历的id值,并传递给地址栏。

    1.php有时候我们需要再弹框中获取foreach中遍历的数据(例如id),在弹框中点击按钮并传递给地址栏跳转.那么应该怎么做呢. 2. 点击取现按钮,如果没有设置密码->弹框 3. 点击去设置 ...