基于 FIS3 的针对 Smarty 模板的前端工程解决方案
安装依赖环境
-
安装Node.js
请参考CentOS6.5安装Node.js博文的第二种方案“node安装利器-NVM安装”
#下载并安装NVM脚本 curl https://raw.githubusercontent.com/creationix/nvm/v0.31.7/install.sh | bash source ~/.bash_profile #2.列出所需要的版本 nvm list-remote #3.安装FIS3依赖的版本(FIS3的Node版本要求 0.8.x,0.10.x, 0.12.x,4.x,6.x) nvm install v6.5.0
-
安装NPM镜像设置利器:NRM
由于FIS3是通过NPM命令安装的,NPM源默认为国外源,由于经常被墙,为了保证安装其他模块速度,我们需要手都更新源。NRM利器汇集多个Npm源,方便我们通过测试不同源的响应时间,来选择用哪个NPM源。
请参考CentOS6.5安装Node.js博文的第四种方案“NPM镜像设置利器:NRM”#1、安装NRM $ npm install -g nrm #2、查看具体命令 $ nrm --help Usage: nrm [options] [command] Commands: ls 展示所有npm镜像 use <registry> 选择使用哪个镜像 add <registry> <url> [home] 增加自定义镜像 del <registry> 删除镜像 home <registry> [browser] 用浏览器打开镜像首页 test [registry] 测试连接镜像响应时间(非常重要,方面我们选择使用哪个镜像) help Print this help #3、展示所有npm镜像(前面星号(*)指明当前正在用的镜像) $ nrm ls * npm ----- https://registry.npmjs.org/ cnpm ---- http://r.cnpmjs.org/ taobao -- https://registry.npm.taobao.org/ nj ------ https://registry.nodejitsu.com/ rednpm -- http://registry.mirror.cqupt.edu.cn skimdb -- https://skimdb.npmjs.com/registry #4、测试连接镜像响应时间,选择使用哪个镜像 #国内比较稳定的是taobao,也可以通过nrm test [registry]比较 $ nrm use taobao
-
安装FIS3
当NPM镜像设置完毕后,我们可以开心的玩耍了。
#npm 安装 FIS3 npm install -g fis3;
fis3-smarty需要php的web环境,fis3开发了相应的组件fis3-server-smarty来支持php脚本
fis3-server-smarty 是通过 java + jetty + phpcgi 开启服务,内嵌支持 [fis3-smarty](https://github.com/fex-team/fis3-smarty) 调试的运行框架。#npm 安装 fis3-server-smarty yum install php java; npm install -g fis3-server-smarty;
开启web服务
#1.自定义设置全局web服务根目录 #默认:~/.fis3-tmp/www export FIS_SERVER_DOCUMENT_ROOT=/home/www #开启服务 2.fis3 server start --type smarty # 服务的相关命令 fis3 server --help
-
安装fis3-smarty
fis3-smarty
#npm 安装 fis3-smarty npm install -g fis3-smarty; #将fis3-smarty的例子cp到home目录下 cp -fr ~/.nvm/versions/node/v6.5.0/lib/node_modules/fis3-smarty/doc/demo /home
模块编译发布
#demo下模块配置参考 cd /home/demo/common; # vim fis-conf.js fis.require('smarty')(fis); fis.set('namespace',
); // default media is `dev`, fis.media('dev').match('*', { useHash: false, optimizer: null }); #发布 fis3 release 后记:通过实际操作可以得知,fis.require(‘smarty’)(fis);这是调用了fis3-smarty模块的功能部署功能,大体经过可以查看 ~/.nvm/versions/node/v6.5.0/lib/node_modules/fis3-smarty/index.js中的代码优化合并机器部署规则!