CentOS搭建meanjs环境(二)

CentOS搭建meanjs环境(一)中已经整体上介绍了mean这个技术栈的情况,接下来我们就开始实际搭建出来meanjs的环境:

说明

本次搭建meanjs环境是以meanjs官网中的文档为主要路线,然后辅以相应的知识扩展,基本操作,问题解决处理。

本人的搭建环境是 CentOS6 x86,几乎是个白板操作系统,所以遇到的问题可能是大家都会遇到的。

git

此处安装git主要用于克隆meanjs的源代码,大部分电脑可能有,那就跳过这一步。此处为CentOS系统的安装方法,其他操作系统请参考https://git-scm.com/downloads

1
2
3
$ git --version #检测是否已经安装git
$ yum update #更新yum的软件库
$ yum install git #安装git

nvm

鉴于nodejs社区非常活跃,版本更新迭代速度快的问题,我们可以采用 nvmn 来管理nodejs的版本,此处我采用nvm,因为n还需要首先得安装一个nodejs环境,这是个 鸡生蛋还是蛋生鸡 的问题,比较头大。

可以用curl或者wget命令来安装nvm:

1
2
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.4/install.sh | bash

完成之后,出现“close your terminal and 。。。”,忘记记下来了,大致意思就是:关闭你的控制台再启动,你就可以使用nvm了。然后就关闭控制台,再开启一次,果然OK。(突然反应过来,此时输入 $ source ~/.bashrc 应该就可以,不用重启控制台啊)

接下来,介绍nvm的常用命令:

1
2
3
4
5
6
7
$ nvm --version #检查nvm的版本号,来检查是否安装成功
$ nvm install 4.4.7 #下载、安装并且编译版本为4.4.7的nodejs
$ nvm install 6.3.1 #下载、安装并且编译版本为6.3.1的nodejs
$ nvm uninstall 4.4.7 #卸载版本为4.4.7的nodejs
$ nvm current #查看当前使用的nodejs版本
$ nvm ls #显示所有nodejs版本
$ nvm use 4.4.7 #使用版本为4.4.7的nodejs

node & npm

经过nvm的安装之后,你应该已经选好了自己要用的node版本了(node会自带npm的安装),用下面的命令来看看是否安装成功。

1
2
$ node --version
$ npm --version

npm主要是用来方便快捷的使用node第三方包的,项目中会经常使用,此处介绍npm的常用命令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
$ npm install npm -g #更新npm
$ npm install #根据当前项目下的 package.json 文件下载对应的包
$ npm install <Module Name> -g #全局安装模块,Module Name方的是模块名,-g是全局安装
$ npm install <Module Name> --save-dev/--save
##上一条命令的解释 start
#没有-g就是当前项目下安装某个模块。--save和--save-dev是自动将安装的内容配置到 package.json,省去了手动输入的麻烦。
#--save自动把模块和版本号添加到dependencies部分, --save-dve自动把模块和版本号添加到devdependencies部分。
#至于配置文件区分这俩部分, 是用于区别产品依赖模块(dependencies)和开发依赖模块(devdependencies), 以我见过的情况来看 devDepandencies主要是配置测试框架, 例如jshint、mocha
##上一条命令的解释 end
$ npm ls -g #查看全局安装了哪些模块,不加-g就是当前项目安装了哪些模块
$ npm ls <Module Name> -g #查看全局安装的某个模块的情况,不加-g就不解释了
$ npm uninstall <Module Name> -g #全局卸载某一模块,不加-g就不解释了
$ npm update <Module Name> -g #全局更新某一模块,不加-g就不解释了
$ npm init #初始化模块,npm会根据当前项目下 package.json 文件来下载需要的模块,package.json里面配置了项目依赖的模块

接下来,我们来介绍几个常用的模块:

  • bower:网站是由框架、模块包、图片资源、音视频资源和工具等很多内容组成的,Bower来管理这些内容。它本来考虑的是全局管理所有资源,但是我们通常用它管理客户端的资源,比如jquery、bootstrap、前端图片等等。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    $ npm install bower -g #全局安装bower
    #下面是bower常用命令,可能需要--allow-root临时获取root权限,在命令后面加上 --allow-root 即可使用
    $ bower init #进入项目目录下,会创建一个bower.json文件,里面保存了项目的配置信息
    $ bower install #根据当前项目目录下的bower.json文件安装所需要的包,
    $ bower install jquery --save #自动安装最新的jquery,--save是将配置信息自动保存到bower.json文件中。jquery可替换成其他需要的文件
    $ bower info jquery #查看jquery的版本信息等。jquery可替换成其他需要的文件
    $ bower update #bower.json文件修改后,更新命令可以相应的下载所需的包
    $ bower search bootstrap #可以查找所有包含bootstrap字符的包。bootstrap可替换成其他所需要查找的字符
    $ bower uninstall jquery #卸载jquery。jquery可替换成其他需要的文件
  • grunt:对于需要反复重复的任务,例如压缩(minification)、编译、单元测试、linting等,自动化工具可以减轻你的劳动,简化你的工作。当你在 Gruntfile 文件正确配置好了任务,任务运行器就会自动帮你或你的小组完成大部分无聊的工作。

    1
    $ npm install grunt-cli -g #全局安装grunt
  • gulp:功能上与上述的grunt是相互可替代的,相比而言,我认为gulp的api更加通俗易懂,容易使用。此处安装两个,是为了方便后续两个可以都试一试。

    1
    $ npm install gulp -g #全局安装gulp

MongoDB

各系统下载
安装指导

此处遇到坑,32位系统只能安装2.6版本,后续不支持32位系统了。此处说明:MongoDB不建议使用32位的操作系统,因为这样只能处理2GB大小的数据,而MongoDB是非常费空间的。

64位contos安装:

1
2
3
4
5
6
7
8
9
$ vim /etc/yum.repos.d/mongodb-org-3.0.repo
#输入下列文字 start
[mongodb-org-3.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.0/x86_64/
gpgcheck=0
enabled=1
#输入下列文字 end
$ sudo yum install -y mongodb-org

32位centos安装

1
2
3
4
5
6
7
8
9
$ vim /etc/yum.repos.d/mongodb-org-3.0.repo #文件名可能有点不对应了,无所谓,一个标识而已
#输入下列文字 start
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/i686/
gpgcheck=0
enabled=1
#输入下列文字 end
$ sudo yum install -y mongodb-org

此时,mongodb已经安装完成了,我们做一些小修改,然后启动服务:

1
2
3
4
$ vim /etc/mongod.conf
# 将文件中的 port=27017 前的#去掉,保存后退出
$ service mongod start #启动服务
$ tail /var/log/mongodb/mongod.log #查看mongodb日志,发现[initandlisten] waiting for connections on port <port>,表示服务已经在27017端口启动监听,启动成功

推荐一个初步学习mongodb的网站:MongoDB 教程

克隆meanjs并运行

下载meanjs到meanjs目录中

1
$ git clone https://github.com/meanjs/mean.git meanjs

或者用zip解压也可以

1
2
3
$ wget https://github.com/meanjs/mean/archive/master.zip -O meanjs.zip
$ unzip meanjs.zip
$ rm meanjs.zip

安装所需模块

进入meanjs目录下,安装所需的组件

我在此处使用了 cnpm,即中国的npm来安装这些包,是由淘宝提供的,可信度还是不错的。cnpm的使用与npm的使用方法一致,只是将命令 npm 变为 cnpm 即可。

1
2
3
$ npm install -g cnpm --registry=https://registry.npm.taobao.org #全局安装cnpm
$ cd meanjs
$ cnpm install

安装前端内容

1
$ bower install --allow-root

运行

使用 gulp或者grunt 来构建运行项目

1
2
3
$ gulp
#OR
$ grunt

  • 如出现报错:Error: Cannot find module ‘less’

    1
    $ npm install -g less --save-dev
  • 如出现报错:Error: ENOENT: no such file or directory, scandir ‘/usr/local/app/meanjs0.4.2/node_modules/.3.8.0@node-sass/vendor’

    1
    2
    3
    $ cd node_modules
    $ npm rebuild node-sass
    $ cd ..

最后再试一次:

1
2
3
$ gulp
#OR
$ grunt

MEAN.JS - Development Environment
Environment: development
Port: 3000
Database: mongodb://localhost/mean-dev
App version: 0.4.2
MEAN.JS version: 0.4.2

出现类似上述文字即运行成功,打开 http://localhost:3000/ 看看效果吧


快速连接:

CentOS搭建meanjs环境(一)
CentOS搭建meanjs环境(二)