Rails 5.1 使用 yarn 和 webpack 实战 (vue, 构建等)

之前就有听到Rails 5.1会迎来大更新, 主题是Loving Javascript,并会迎来yarn和webpack,目前前端小伙伴们最强大的工具。相信稍有关注前端发展的同学,均听过当今前端圈子里流行的种种名词: es6 es7 vue react react-native cs-modules等等, 因为node的出现,良好的包管理、服务端渲染等等新特性,另得前端的同学们写的代码在执行前有了更多的构建方式和选择,前端发展空前繁荣。然而,作为走在web开发提供最佳实践的Rails,直到5.0的版本,还是用着3.1版本时出现assets pipeline作为前端文件包管理,虽然有不少贡献者提供诸如browserify-rails vue-rails等等的gem,企图为Rails带来多少便利,但仍难改变Gem方式管理前端库的更新不及时、es6/es7新特性难支持,构建不灵便等缺陷。 我司最近其中两个项目霸屏 和 电商,一个用到vue,一个是要求用react,正是前端交互均比较复杂的例子,使用webpack去做构建都是必须的。公司前端的小伙新技术玩得很溜,但这两个项目在开发期需要到服务端很多的交互数据去调试,最初后端和前端拆分开在两个项目里写,后来项目时间的原因后端的同学也加入到写前端代码,写完后后端同学拖代码再各种合并部署到staging测试,中间出现bug调试再上线再测试,浪费了不少时间,最后不得已地又把前端代码移到rails,又花了不少时间做项目构建, 手动把webpack和Rails前端管理体系结合,什么编译完后各种跑各种复制啊,前端里也要做环境区分啊,苦不堪言。 现在Rails 5.1出来后,一切都过去了!yarn解决了js之前模块交叉依赖、版本混乱和重复加载的问题,强大的构建工具webpack,能帮助你处理文件依赖,按需加载,还有强大的webpack-dev-server,你所能想到当前大部分前端构建和优化的问题,它有很好的解决方案。并且,它俩现在也能跟Rails很好的结合在一起了! 当然引入新的解决方案,也会带来新的问题。例如es6的语法,webpack的配置等,都会带来新的学习成本。你可能会说为啥前端要搞得那么复杂吧,但他们也是切切实实解决了很多实际问题,优化了过去很多的不足。本文不会去深入讲webpack es6等前端范畴的技术细节,webpack es6 react等,推荐大家可以去看看阮一峰老师的各种教程,深入浅出。文章引用了官方Webpacker gem内容, 本人水平有限,有问题请大家及时指出。 Rails 5.1 配置Webpack Rails5.1新项目使要使用webpack,只需要执行 gem install rails -v '5.1' rails new [your_project] --webpack #也可以 rails new [your_project] --webpack=react 直接装上react 楼主是从旧项目升级,新开个rails5的git分支,项目是从4.2升级到5.1, 修改Gemfile gem 'rails', '5.1' gem […]

继续阅读

ubuntu12.04.3 rvm ruby on rails nginx passenger nodejs环境搭建

1.安装rvm 创建部署用户: root@ubuntu-template-ror:~# adduser deploy 添加到sudo组 root@ubuntu-template-ror:~# usermod -a -G sudo deploy 安装依赖包 sudo apt-get -y update sudo apt-get -y upgrade 这步慎用,会升级底层依赖包包括内核. sudo apt-get -y install build-essential wget curl git-core libcurl4-openssl-dev zlib1g-dev libxml2-dev libxslt-dev libssl-dev libpcre3-dev libmysqlclient-dev libmagickwand-dev libreadline-dev imagemagick gawk libyaml-dev libsqlite3-dev sqlite3 libxslt1-dev autoconf libgdbm-dev libncurses5-dev automake bison […]

继续阅读

linux下mysql的root密码忘记解决方法

1.首先确认服务器出于安全的状态,也就是没有人能够任意地连接MySQL数据库。因为在重新设置MySQL的root密码的期间,MySQL数据库完全出于没有密码保护的状态下,其他的用户也可以任意地登录和修改MySQL的信息。可以采用将MySQL对外的端口封闭,并且停止Apache以及所有的用户进程的方法实现服务器的准安全状态。最安全的状态是到服务器的Console上面操作,并且拔掉网线。 2.修改MySQL的登录设置: # vi /etc/my.cnf 在[mysqld]的段中加上一句:skip-grant-tables 例如: [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock *skip-grant-tables* 保存并且退出vi。 3.重新启动mysqld # /etc/init.d/mysqld restart Stopping MySQL: [ OK ] Starting MySQL: [ OK ] 4.登录并修改MySQL的root密码 # /usr/bin/mysql Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 3 to server version: 3.23.56 […]

继续阅读