Ionic2/3开发笔记

Ionic2在Linux(CentOS)上的搭建记录

2016-05-15  本文已影响887人  54be30d2931c

基本环境要求

dev-box-test-29 ~ $ uname -a
Linux dev-box-test-29 2.6.18-194.el5 #1 SMP Fri Apr 2 14:58:14 EDT 2010 x86_64 x86_64 x86_64 GNU/Linux

dev-box-test-29 ~ $ node -v
v5.3.0

dev-box-test-29 ~ $ npm -v
3.3.12

dev-box-test-29 ~ $ python -V
Python 2.7.3

dev-box-test-29 IonicDemo $ gcc -v
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/opt/rh/devtoolset-2/root/usr/libexec/gcc/x86_64-CentOS-linux/4.8.2/lto-wrapper
Target: x86_64-CentOS-linux
Configured with: ../configure --prefix=/opt/rh/devtoolset-2/root/usr --mandir=/opt/rh/devtoolset-2/root/usr/share/man --infodir=/opt/rh/devtoolset-2/root/usr/share/info --with-bugurl=http://bugzilla.redhat.com/bugzilla --enable-bootstrap --enable-shared --enable-threads=posix --enable-checking=release --with-system-zlib --enable-__cxa_atexit --disable-libunwind-exceptions --disable-gnu-unique-object --enable-linker-build-id --enable-languages=c,c++,fortran,lto --enable-plugin --with-linker-hash-style=gnu --enable-initfini-array --disable-libgcj --with-isl=/home/centos/rpm/BUILD/gcc-4.8.2-20140120/obj-x86_64-CentOS-linux/isl-install --with-cloog=/home/centos/rpm/BUILD/gcc-4.8.2-20140120/obj-x86_64-CentOS-linux/cloog-install --with-gmp=/home/centos/rpm/BUILD/gcc-4.8.2-20140120/obj-x86_64-CentOS-linux/gmp-install --with-mpfr=/home/centos/rpm/BUILD/gcc-4.8.2-20140120/obj-x86_64-CentOS-linux/mpfr-install --with-mpc=/home/centos/rpm/BUILD/gcc-4.8.2-20140120/obj-x86_64-CentOS-linux/mpc-install --with-tune=generic --with-arch_32=i586 --build=x86_64-CentOS-linux
Thread model: posix
gcc version 4.8.2 20140120 (Red Hat 4.8.2-15) (GCC)

Node.Js下载地址
在linux系统中

# 下载二进制文件
cd
wget https://nodejs.org/download/release/v5.3.0/node-v5.3.0-linux-x64.tar.gz  --no-check-certificate
# 解压
gzip -d node-v5.3.0-linux-x64.tar.gz
tar xvf node-v5.3.0-linux-x64.tar
# 软链接到系统默认的PATH环境变量包下
sudo ln -s /home/fengyiyi/node-v5.3.0-linux-x64/bin/node /usr/local/bin/node
sudo ln -s /home/fengyiyi/node-v5.3.0-linux-x64/bin/npm /usr/local/bin/npm

帮助文档

如果你的linux环境下的gcc版本不对,可以用以下的命令更新。

sudo wget http://people.centos.org/tru/devtools-2/devtools-2.repo -O /etc/yum.repos.d/devtools-2.repo
sudo yum install devtoolset-2-gcc devtoolset-2-binutils
sudo yum install devtoolset-2-gcc-c++ devtoolset-2-gcc-gfortran
scl enable devtoolset-2 bash
gcc –version

错误补录

1, 如果在执行 npm rebuild node-sass 命令的时候,报如下的错误,就说明你的gcc版本不对,请用上面的步骤更新。

cc1plus: error: unrecognized command line option "-std=gnu++0x"
cc1plus: error: unrecognized command line option "-std=c++0x"
make: *** [Release/obj.target/libsass/src/libsass/src/ast.o] Error 1
make: Leaving directory `/var/www/devbox/IonicDemo/node_modules/ionic-gulp-sass-build/node_modules/gulp-sass/node_modules/node-sass/build'
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack    at ChildProcess.onExit (/var/www/devbox/IonicDemo/node_modules/ionic-gulp-sass-build/node_modules/gulp-sass/node_modules/node-sass/node_modules/node-gyp/lib/build.js:276:23)
gyp ERR! stack    at emitTwo (events.js:87:13)
gyp ERR! stack    at ChildProcess.emit (events.js:172:7)
gyp ERR! stack    at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 2.6.18-194.el5
gyp ERR! command "/usr/local/node-v4.4.4-linux-x64/bin/node" "/var/www/devbox/IonicDemo/node_modules/ionic-gulp-sass-build/node_modules/gulp-sass/node_modules/node-sass/node_modules/node-gyp/bin/node-gyp.js" "rebuild" "--verbose" "--libsass_ext=" "--libsass_cflags=" "--libsass_ldflags=" "--libsass_library="
gyp ERR! cwd /var/www/devbox/IonicDemo/node_modules/ionic-gulp-sass-build/node_modules/gulp-sass/node_modules/node-sass
gyp ERR! node -v v4.4.4
gyp ERR! node-gyp -v v3.3.1
gyp ERR! not ok

2, 安装cordova后,执行 cordova -v 时,如果找不到此命令,请执行:

sudo ln -s  /usr/local/node-v4.4.4-linux-x64/lib/node_modules/cordova/bin/cordova /usr/bin/cordova

3, 执行 ionic run browser 时,出现如下错误:

Error executing "google-chrome --user-data-dir=/tmp/temp_chrome_user_data_dir_for_cordova http://localhost:8000/index.html": /bin/sh: google-chrome: command not found

这个是因为我的centos没有安装chrome的原因,所以一定要安装上chrome才行。但是低版本的centos目前很难装上chrome,经过两天努力最终在centos6.7的版本上才安装成功,目前亲测能支持chrome最低版本的centos了,虽然网上有很多教程说6.5、5.5的都可以,但我没有试验成功。方法如下:

yum update -y

vi /etc/yum.repos.d/google.repo

在里面写入:
[google-chrome-64]
name=google-chrome - 64-bit
baseurl=http://dl.google.com/linux/chrome/rpm/stable/x86_64
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

保存,然后执行
yuminstallgoogle-chrome-stable

然后依然会出错,然后执行下面的几步,需要翻墙哦。
wget http://chrome.richardlloyd.org.uk/install_chrome.sh
chmod u+x install_chrome.sh
./install_chrome.sh
google-chrome &

具体的教程在这里:https://www.youtube.com/watch?v=XVVv62mZxlo

安装好chrome后,到ionic项目下,把node-mouldes删掉,重新npm install。

然后再run项目:sudo ionic run browser,不幸的是,还是会报上面那个错误,如下:

Error executing "google-chrome --user-data-dir=/tmp/temp_chrome_user_data_dir_for_cordova http://localhost:8000/index.html"

仔细看会发现,会上面的错误有一些区别,没有了最后面的/bin/sh: google-chrome: command not found

说明goolge-chrome已经装上了但还是出错了。无语了。只能再google,无解。只是自己想办法,最后追踪到项目下的 {项目根目录}/platforms/browser/cordova目录下,有个run文件,其实,执行的时候你就是运行的此文件了。打开一看,有一关键处,如下

   var server = cordovaServe();
    server.servePlatform('browser', {port: args.port, noServerInfo: true}).then(function () {
        var projectUrl = url.resolve('http://localhost:' + server.port + '/', sourceFile ? sourceFile[1] : 'index.html');
        console.log('Static file server running @ ' + projectUrl + '\nCTRL + C to shut down');
【1】    return cordovaServe.launchBrowser({target: args.target, url: projectUrl});
    }).catch(function (error) {
        console.log(error.message || error.toString());
        if (server.server) {
            console.log('fengyiyi is real err!!!');
【2】        // server.server.close();
        }
    });

看来是【1】处抛error了,【2】处把server close掉了。无奈把【2】处注释掉,再次运行项目,成功!可惜目前还不知道为什么会抛异常~

最后的大招
其实【1】处的作用只是server启动后自动打开浏览器而已,在linux系统下自动打开浏览器会出现各种各样的问题,尤其是在没有图形化界面的低版本linux系统下,所以,我们启动服务后,不要自己启动浏览器就好了,所以,我这里最后的解决办法是把【1】处的代码注释掉就ok啦。

4,Error: spawn EACCES错误

ionic hooks add

感谢

Ionic2官方帮助文档
http://ionicframework.com/docs/v2/

NODE-SASS@1.0.1 ON CENTOS 6.5
http://h1de0ut.com/bl0g/article/2014/10/23/node-sass1-0-1-on-centos-6-5/

上一篇下一篇

猜你喜欢

热点阅读