<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>javy_liu</title>
    <link>https://ruby-china.org/javy_liu</link>
    <description/>
    <language>en-us</language>
    <item>
      <title>Windows 10 使用 RubyMine + Vagrant VM </title>
      <description>&lt;p&gt;1、rubymine 安装略过，vagrant 安装略过，virtualbox 安装略过，Git 安装略过&lt;/p&gt;

&lt;p&gt;2、Git\bin\bash.exe 设置为以管理员身份启动&lt;/p&gt;

&lt;p&gt;3、使用管理员身份启动 rubymine &lt;/p&gt;

&lt;p&gt;4、rubymine 设置中 vagrant 选项设置&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2019/f8240709-31b7-4bdc-9149-5bfc1cb49349.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;5、rubymine 终端设置为 git bash &lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2019/a84a42c8-c11d-435e-880f-7b66740622df.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;6、执行 &lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2019/4f5fed4c-ba8b-44cd-9607-d2ce3df409ea.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;7、安装完 box 实例后，vagrant ssh 登录安装 ruby 环境，我使用的是 rvm &lt;/p&gt;

&lt;p&gt;8、rubymine settings &amp;gt; Ruby SDK and Gems，设置好 ruby 和 gems&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2019/f1ec0cef-fa83-4e34-b293-542ea039768a.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;&lt;img src="https://l.ruby-china.com/photo/2019/0e3f1746-335f-4877-905c-f81e6f2cbd02.png!large" title="" alt=""&gt;&lt;/p&gt;

&lt;p&gt;9、现在可以用 rubymine 来做项目了，各种命令都在 vm 环境中运行，文件编辑则在 rubymine 中，充分利用了 rubymine 的编辑优势，rails6 项目，起两个终端，分别启动 rails s  及 ./bin/webpack-dev-server 即可&lt;/p&gt;

&lt;p&gt;#几个需注意问题：&lt;/p&gt;

&lt;p&gt;1、vm 中无法在共享目录创建软链问题：启动 vagrant ssh 的终端需以管理员身份启动&lt;/p&gt;

&lt;p&gt;2、rubymine 更改 erb, rb 文件刷新浏览器不体现更改问题，修改 webpacker.yml 文件，添加 watch_options&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="ss"&gt;watch_options:
      aggregateTimeout: &lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;
      &lt;span class="ss"&gt;poll: &lt;/span&gt;&lt;span class="mi"&gt;1000&lt;/span&gt;
      &lt;span class="ss"&gt;ignored: &lt;/span&gt;&lt;span class="s1"&gt;'**/node_modules/**'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3、使用 browser-sync-webpack-plugin 监听 erb, rb 文件自动刷新浏览器：&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;yarn&lt;/span&gt; &lt;span class="n"&gt;add&lt;/span&gt; &lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;dev&lt;/span&gt; &lt;span class="n"&gt;browser&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;sync&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;webpack&lt;/span&gt;&lt;span class="o"&gt;-&lt;/span&gt;&lt;span class="n"&gt;plugin&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;在 webpack/development.js 中添加&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt; &lt;span class="n"&gt;const&lt;/span&gt; &lt;span class="no"&gt;BrowserSyncPlugin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;require&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'browser-sync-webpack-plugin'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="n"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;append&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'BrowserSyncWebpack'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;new&lt;/span&gt; &lt;span class="no"&gt;BrowserSyncPlugin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="sr"&gt;//&lt;/span&gt; &lt;span class="no"&gt;BrowserSync&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sr"&gt;//&lt;/span&gt; &lt;span class="n"&gt;browse&lt;/span&gt; &lt;span class="n"&gt;to&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;localhost&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;3000&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="n"&gt;during&lt;/span&gt; &lt;span class="n"&gt;development&lt;/span&gt;
        &lt;span class="ss"&gt;host: &lt;/span&gt;&lt;span class="s1"&gt;'192.168.30.33'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="ss"&gt;open: &lt;/span&gt;&lt;span class="kp"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="ss"&gt;port: &lt;/span&gt;&lt;span class="mi"&gt;3005&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="ss"&gt;files: &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'./app/views/**/*.erb'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="s1"&gt;'./public/**/*.html'&lt;/span&gt; &lt;span class="p"&gt;],&lt;/span&gt;
        &lt;span class="ss"&gt;watchOptions: &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="ss"&gt;usePolling: &lt;/span&gt;&lt;span class="kp"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="ss"&gt;interval: &lt;/span&gt;&lt;span class="mi"&gt;300&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;


        &lt;span class="sr"&gt;//&lt;/span&gt; &lt;span class="n"&gt;proxy&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="no"&gt;Webpack&lt;/span&gt; &lt;span class="no"&gt;Dev&lt;/span&gt; &lt;span class="no"&gt;Server&lt;/span&gt; &lt;span class="n"&gt;endpoint&lt;/span&gt;
        &lt;span class="sr"&gt;//&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;which&lt;/span&gt; &lt;span class="n"&gt;should&lt;/span&gt; &lt;span class="n"&gt;be&lt;/span&gt; &lt;span class="n"&gt;serving&lt;/span&gt; &lt;span class="n"&gt;on&lt;/span&gt; &lt;span class="n"&gt;http&lt;/span&gt;&lt;span class="ss"&gt;:/&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="n"&gt;localhost&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="mi"&gt;3100&lt;/span&gt;&lt;span class="o"&gt;/&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
        &lt;span class="sr"&gt;//&lt;/span&gt; &lt;span class="n"&gt;through&lt;/span&gt; &lt;span class="no"&gt;BrowserSync&lt;/span&gt;
        &lt;span class="n"&gt;proxy&lt;/span&gt;&lt;span class="ss"&gt;:'http://localhost:3000/'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="sr"&gt;//&lt;/span&gt; &lt;span class="n"&gt;plugin&lt;/span&gt; &lt;span class="n"&gt;options&lt;/span&gt;
    &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="sr"&gt;//&lt;/span&gt; &lt;span class="n"&gt;prevent&lt;/span&gt; &lt;span class="no"&gt;BrowserSync&lt;/span&gt; &lt;span class="n"&gt;from&lt;/span&gt; &lt;span class="n"&gt;reloading&lt;/span&gt; &lt;span class="n"&gt;the&lt;/span&gt; &lt;span class="n"&gt;page&lt;/span&gt;
        &lt;span class="sr"&gt;//&lt;/span&gt; &lt;span class="ow"&gt;and&lt;/span&gt; &lt;span class="n"&gt;let&lt;/span&gt; &lt;span class="no"&gt;Webpack&lt;/span&gt; &lt;span class="no"&gt;Dev&lt;/span&gt; &lt;span class="no"&gt;Server&lt;/span&gt; &lt;span class="n"&gt;take&lt;/span&gt; &lt;span class="n"&gt;care&lt;/span&gt; &lt;span class="n"&gt;of&lt;/span&gt; &lt;span class="n"&gt;this&lt;/span&gt;
        &lt;span class="ss"&gt;reload: &lt;/span&gt;&lt;span class="kp"&gt;false&lt;/span&gt;
    &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;))&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;3、使用 webpack-dev-server 时，文件变化的监听方式得更改为 ActiveSupport::FileUpdateChecker，在 development.rb 中&lt;/p&gt;
&lt;pre class="highlight ruby"&gt;&lt;code&gt;&lt;span class="n"&gt;config&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;file_watcher&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="no"&gt;ActiveSupport&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="no"&gt;FileUpdateChecker&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;</description>
      <author>javy_liu</author>
      <pubDate>Wed, 06 Nov 2019 16:02:33 +0800</pubDate>
      <link>https://ruby-china.org/topics/39221</link>
      <guid>https://ruby-china.org/topics/39221</guid>
    </item>
    <item>
      <title>国内什么 rails 主机提供商么</title>
      <description>&lt;p&gt;大家都从哪里搞到的主机？不会都放在国外的主机上吧？  &lt;/p&gt;</description>
      <author>javy_liu</author>
      <pubDate>Thu, 12 Jan 2012 18:53:25 +0800</pubDate>
      <link>https://ruby-china.org/topics/829</link>
      <guid>https://ruby-china.org/topics/829</guid>
    </item>
  </channel>
</rss>
