<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hexo on Time Friend</title><link>https://time-friend.com/zh/tags/hexo/</link><description>Recent content in Hexo on Time Friend</description><generator>Hugo</generator><language>zh-CN</language><lastBuildDate>Tue, 20 Nov 2018 16:14:25 +0000</lastBuildDate><atom:link href="https://time-friend.com/zh/tags/hexo/index.xml" rel="self" type="application/rss+xml"/><item><title>使用Travis CI自动化部署你的Hugo,Hexo博客</title><link>https://time-friend.com/zh/archive/automated-deployment-hugo-hexo-blog-with-travis-ci/</link><pubDate>Tue, 20 Nov 2018 16:14:25 +0000</pubDate><guid>https://time-friend.com/zh/archive/automated-deployment-hugo-hexo-blog-with-travis-ci/</guid><description>&lt;h1 id="travis-ci-是什么"&gt;Travis CI 是什么?&lt;/h1&gt;
&lt;p&gt;Travis CI 是在线托管的 CI 服务，用 Travis 来进行持续集成，不需要自己搭服务器。最重要的是，它对开源项目是免费的。
如果公司是用的是 gitlab,也有提供相应的持续集成服务.这里就过多赘述.&lt;/p&gt;
&lt;h1 id="travis-ci-配置文件"&gt;Travis CI 配置文件&lt;/h1&gt;
&lt;p&gt;Travis 要求项目的根目录下面，必须有一个&lt;code&gt;.travis.yml&lt;/code&gt;文件。&lt;/p&gt;
&lt;p&gt;当你的仓库有提交的时候,travis 会自动执行你下面配置的行为.&lt;/p&gt;
&lt;h1 id="travis-ci-的钩子与生命周期"&gt;Travis CI 的钩子与生命周期&lt;/h1&gt;
&lt;h2 id="travis-的钩子"&gt;Travis 的钩子&lt;/h2&gt;
&lt;p&gt;Travis 有不同的阶段,他提供了 7 个钩子。&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;before_install：install 阶段之前执行&lt;/li&gt;
&lt;li&gt;before_script：script 阶段之前执行&lt;/li&gt;
&lt;li&gt;after_failure：script 阶段失败时执行&lt;/li&gt;
&lt;li&gt;after_success：script 阶段成功时执行&lt;/li&gt;
&lt;li&gt;before_deploy：deploy 步骤之前执行&lt;/li&gt;
&lt;li&gt;after_deploy：deploy 步骤之后执行&lt;/li&gt;
&lt;li&gt;after_script：script 阶段之后执行&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="生命周期"&gt;生命周期&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;before_install&lt;/li&gt;
&lt;li&gt;install&lt;/li&gt;
&lt;li&gt;before_script&lt;/li&gt;
&lt;li&gt;script&lt;/li&gt;
&lt;li&gt;aftersuccess or afterfailure&lt;/li&gt;
&lt;li&gt;[OPTIONAL] before_deploy&lt;/li&gt;
&lt;li&gt;[OPTIONAL] deploy&lt;/li&gt;
&lt;li&gt;[OPTIONAL] after_deploy&lt;/li&gt;
&lt;li&gt;after_script&lt;/li&gt;
&lt;/ol&gt;
&lt;h1 id="travisyml"&gt;.travis.yml&lt;/h1&gt;
&lt;p&gt;下面是我的博客部署配置,也是我项目&lt;code&gt;.travis.yml&lt;/code&gt;文件的内容.&lt;/p&gt;
&lt;h2 id="hugo"&gt;hugo&lt;/h2&gt;
&lt;p&gt;这是我的 hugo 部署配置,仅供参考&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;language&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;node_js&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;node_js&lt;/span&gt;: &lt;span style="color:#ae81ff"&gt;10.13.0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;install&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;wget https://github.com/gohugoio/hugo/releases/download/v0.51/hugo_0.51_Linux-64bit.deb&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;sudo dpkg -i hugo*.deb&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;hugo version&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;rm -rf public&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;npm install&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;script&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;hugo --buildFuture&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;gulp&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;echo &amp;#39;Build done!&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;after_success&lt;/span&gt;:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;git config --global user.name &amp;#34;Fan&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;git config --global user.email &amp;#34;你的邮箱&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;git clone https://${ACCESS_TOKEN}@github.com/Num142857/alili.tech.git container&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;rm -rf container/*&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;cp -r public/* container&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;cd container&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;git add .&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;git commit -m &amp;#39;Travis upate blog&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - &lt;span style="color:#ae81ff"&gt;git push -u origin gh-pages -f&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="hexo"&gt;Hexo&lt;/h2&gt;
&lt;p&gt;这是我的 hexo 部署配置,仅供参考.&lt;/p&gt;</description></item><item><title>Hexo Process Out of Memory 内存溢出问题</title><link>https://time-friend.com/zh/archive/hexo-process-out-of-memory/</link><pubDate>Tue, 13 Nov 2018 21:32:05 +0000</pubDate><guid>https://time-friend.com/zh/archive/hexo-process-out-of-memory/</guid><description>&lt;h2 id="hexo内存溢出问题"&gt;hexo内存溢出问题&lt;/h2&gt;
&lt;p&gt;当hexo生成文章大概在1000左右的时候,便有可能出现该问题.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="解决方法"&gt;解决方法:&lt;/h2&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# 找到hexo 命令的位置&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;which hexo
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;编辑hexo命令的bin文件的第一行为以下内容.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-js" data-lang="js"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/usr/bin/env node --max_old_space_size=8192
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;便暂时解决内存溢出的问题.&lt;/p&gt;
&lt;h2 id="hexo的性能"&gt;hexo的性能&lt;/h2&gt;
&lt;p&gt;hexo的性能相对hugo确实差太多,同样1000+的页面,用hugo却只用了不到2s.
这让我开始开始犹豫是否要放弃使用hexo.&lt;/p&gt;</description></item><item><title>Hexo的DTraceProviderBindings MODULE_NOT_FOUND问题</title><link>https://time-friend.com/zh/archive/hexo-dtrace-provider-bindings-module-not-found/</link><pubDate>Sun, 19 Feb 2017 21:32:05 +0000</pubDate><guid>https://time-friend.com/zh/archive/hexo-dtrace-provider-bindings-module-not-found/</guid><description>&lt;p&gt;最近在mac上安装Hexo,老是报错 DTraceProviderBindings MODULE_NOT_FOUND;&lt;/p&gt;
&lt;h2 id="第一种报错"&gt;第一种报错&lt;/h2&gt;
&lt;p&gt;报错命令如下:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;{ [Error: Cannot find module &amp;#39;./build/Release/DTraceProviderBindings&amp;#39;] code: &amp;#39;MODULE_NOT_FOUND&amp;#39; }
{ [Error: Cannot find module &amp;#39;./build/default/DTraceProviderBindings&amp;#39;] code: &amp;#39;MODULE_NOT_FOUND&amp;#39; }
{ [Error: Cannot find module &amp;#39;./build/Debug/DTraceProviderBindings&amp;#39;] code: &amp;#39;MODULE_NOT_FOUND&amp;#39; }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;虽然hexo的生成 发布功能没有影响.但是每次运行命令的时候,就会报错.表示很不能忍;&lt;/p&gt;
&lt;p&gt;网上的普遍方法是:&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;npm install hexo --no-optional
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;但是,我的电脑还是没有效果;&lt;/p&gt;
&lt;p&gt;最后我重装了 hexo-cli&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;npm uninstall hexo-cli -g
npm install hexo-cli -g
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;我的报错问题就解决了.&lt;/p&gt;
&lt;h2 id="第二种报错"&gt;第二种报错&lt;/h2&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;{ Error: Cannot find module &amp;#39;./build/Release/DTraceProviderBindings&amp;#39;
at Function.Module._resolveFilename (module.js:469:15)
at Function.Module._load (module.js:417:25)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.&amp;lt;anonymous&amp;gt; (/usr/local/lib/node_modules/.dtrace-provider_npminstall/dtrace-provider/0.8.0/dtrace-provider/
dtrace-provider.js:17:23)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
at Object.&amp;lt;anonymous&amp;gt; (/usr/local/lib/node_modules/hexo-cli/node_modules/bunyan/lib/bunyan.js:79:18)
at Module._compile (module.js:570:32)
at Object.Module._extensions..js (module.js:579:10)
at Module.load (module.js:487:32) code: &amp;#39;MODULE_NOT_FOUND&amp;#39; }
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;问题是因为安装的过程中,各种奇奇怪怪的问题导致hexo-cli的依赖库 dtrace-provider 没有安装成功.&lt;/p&gt;</description></item></channel></rss>