<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <author>
    <name>东子</name>
  </author>
  <generator uri="https://hexo.io/">Hexo</generator>
  <id>https://dongzibk.com/</id>
  <link href="https://dongzibk.com/" rel="alternate"/>
  <link href="https://dongzibk.com/atom.xml" rel="self"/>
  <rights>All rights reserved 2026, 东子</rights>
  <subtitle>关注前端技术,记录日常生活的个人网站</subtitle>
  <title>东子个人博客</title>
  <updated>2026-08-25T13:55:30.586Z</updated>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="JavaScript" scheme="https://dongzibk.com/categories/JavaScript/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>说起javascript吧，我只能算是会写一些基础的代码，之前没细致探索过预编译啊、作用域啊。这几天在B站上又细致的看了些这方面内容，特做个笔记，如有错误，欢迎评论指正。</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><h3 id="何为预编译？"><a href="#何为预编译？" class="headerlink" title="何为预编译？"></a>何为预编译？</h3><p>我们都知道，js是解释型语言，它是看一行执行一行，但在执行前会进行预编译。预编译主要进行变量的声明提示和函数的整体提升。本文将主要介绍执行函数这一块，全局也是差不多一样道理。</p><h3 id="示例代码"><a href="#示例代码" class="headerlink" title="示例代码"></a>示例代码</h3><p><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_25/2092230490809876482.jpg" alt="预编译示例代码"><br>这是一段代码，里面涉及到控制台输出，小伙伴们可以先判断判断console.log这几处会输出什么。</p><h3 id="预编译过程"><a href="#预编译过程" class="headerlink" title="预编译过程"></a>预编译过程</h3><p>就函数而言，预编译发生在函数执行的前一刻进行。</p><ul><li>首先，会创建AO对象。官方名叫运行期上下文对象好像。</li><li>接着，会找函数里的形参和变量名，并在AO对象中赋值为undefined。</li><li>然后，形参和实参相统一。即将实参赋值给对应的形参。</li><li>最后，会找函数里的函数声明，并在AO对象中把函数体赋值给它。</li></ul><h3 id="代码详解"><a href="#代码详解" class="headerlink" title="代码详解"></a>代码详解</h3><p>首先，在函数执行前一刻创建了AO对象。<br>然后，我们发现这个函数没有形参，但声明了变量a和变量b，此时的AO对象为：</p><pre><code class="javascript">AO:&#123;  a:undefined,  b:undefined,&#125;</code></pre><p>没有形参和实参这一步，我们来到最后一步，发现有个函数声明即function b(){}，到这，AO对象变为：</p><pre><code class="javascript">AO:&#123;  a:undefined,  b:function b()&#123; ... &#125;&#125;</code></pre><p>预编译到这里就结束了。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_25/2092232911544041474.jpg" alt="答案参考"><br>开始运行函数，那么第一行输出不言而喻，是undefined。下一行var b这一块就可以忽略，因为已经做过预编译了。</p><p>下一行不言而喻，是function b(){}。然后接着，a&#x3D;20,b&#x3D;30。那么AO对象里也这样变化：</p><pre><code class="javascript">AO:&#123;  a:20,  b:30&#125;</code></pre><p>最后两个输出就分别是20和30了。<br>想的对不对呢，打开浏览器看看：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_25/2092233908442021889.jpg" alt="浏览器控制台输出"><br>经验证，是这个理。</p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>以上就是对函数这一块预编译的介绍，欢迎大家评论区讨论、指正。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0825/202755.html</id>
    <link href="https://dongzibk.com/2026/0825/202755.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_25/2092230490809876482.jpg" rel="enclosure"/>
    <published>2026-08-25T12:27:55.000Z</published>
    <summary>说起javascript吧，我只能算是会写一些基础的代码，之前没细致探索过预编译啊、作用域啊。这几天在B站上又细致的看了些这方面内容，特做个笔记，如有错误，欢迎评论指正...</summary>
    <title>浅析JS预编译-函数篇</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="实用教程" scheme="https://dongzibk.com/categories/%E5%AE%9E%E7%94%A8%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>Github并不陌生，很多源码都在上面。但这玩意平时喜欢抽风，需要使用一些科学手段。那除了科学手段，还有没有其他姿势呢？<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_23/2091393100885180418.jpg" alt="Github"></p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><h3 id="工具介绍"><a href="#工具介绍" class="headerlink" title="工具介绍"></a>工具介绍</h3><p>前些天了解到有个软件叫做<strong>Watt ToolKit</strong>，里面可以免费加速Github访问。同时还支持steam、谷歌图形验证码等，如下图：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_23/2091394059271061506.jpg"></p><h3 id="工具下载"><a href="#工具下载" class="headerlink" title="工具下载"></a>工具下载</h3><p>这么好的工具，如何安装呢？我们打开Microsoft store搜索这个软件名下载即可。</p><h3 id="工具使用"><a href="#工具使用" class="headerlink" title="工具使用"></a>工具使用</h3><p>然后点击左侧的<strong>网络加速</strong>，在下面勾选想要加速的，点击一键加速即可。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_23/2091394510506868737.jpg" alt="操作步骤"></p><p>当然，也不是100%可用率，有时候会提示服务不可用。我感觉原理应该和<strong>Fast Github</strong>差不多，就是找一些github解析的一些现在速度比较快的IP来加速访问而已。</p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>本文就介绍到这里，欢迎交流、指正。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0823/131111.html</id>
    <link href="https://dongzibk.com/2026/0823/131111.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_23/2091393100885180418.jpg" rel="enclosure"/>
    <published>2026-08-23T05:11:11.000Z</published>
    <summary>Github并不陌生，很多源码都在上面。但这玩意平时喜欢抽风，需要使用一些科学手段。那除了科学手段，还有没有其他姿势呢...</summary>
    <title>访问Github的另一种姿势</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="JavaScript" scheme="https://dongzibk.com/categories/JavaScript/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>上篇文章介绍了使用gulp压缩css的方法，不更新压缩js的方法，总感觉少点什么。这篇文章将介绍使用Gulp来压缩js。</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><p>在这，安装nodejs和初始化项目就不介绍了。</p><h3 id="安装插件"><a href="#安装插件" class="headerlink" title="安装插件"></a>安装插件</h3><p>压缩css时我们用的gulp-clean-css，压缩js时，特别是含有es6语法，我们用的是gulp-terser。<br>首先，在终端输入以下命令：</p><pre><code class="bash">npm i gulp gulp-terser</code></pre><h3 id="配置gulp"><a href="#配置gulp" class="headerlink" title="配置gulp"></a>配置gulp</h3><p>在项目根目录下新建<strong>gulpfile.js</strong>，编写以下内容：</p><pre><code class="javascript">const gulp=require(&quot;gulp&quot;)const terser=require(&quot;gulp-terser&quot;)function minJs()&#123;  return gulp.src(&quot;js/*.js&quot;) // js文件位置  .pipe(terser(&#123;    compress:&#123;      drop_console:true, // 是否清除代码中控制台输出      passes:2,    &#125;,    output:&#123;      comments:false, // 是否保留注释    &#125;  &#125;))  .pipe(gulp.dest(&quot;dist&quot;)) // 指定输出目录&#125;exports.minJs = minJs</code></pre><h3 id="运行代码"><a href="#运行代码" class="headerlink" title="运行代码"></a>运行代码</h3><p>在终端命令行，输入以下命令：</p><pre><code class="bash">npx gulp minJs</code></pre><p>大概会看到如下结果：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_21/2090800208852467713.jpg" alt="gulp运行结果"><br>这时候，我们就会发现dist目录中出现了压缩好的文件。</p><h3 id="效果对比"><a href="#效果对比" class="headerlink" title="效果对比"></a>效果对比</h3><p><strong>压缩前：</strong><br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_21/2090800905647996930.jpg" alt="压缩前js大小"><br><strong>压缩后：</strong><br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_21/2090801049047056386.jpg" alt="压缩后js大小"><br>通过对比，发现压缩了有<strong>1.22kb</strong>。代码少可能压缩效果不明显，我本地也没有很大的js文件</p><h3 id="补充"><a href="#补充" class="headerlink" title="补充"></a>补充</h3><p>gulp-terser这个插件支持es6语法，但不会说把es6转换成es5来支持低版本浏览器。需要转换的话，还要用到babel这个插件，感兴趣的小伙伴可以下去自行探索。</p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>以上就是本文全部内容，欢迎评论区讨论.</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0821/214809.html</id>
    <link href="https://dongzibk.com/2026/0821/214809.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_21/2090800208852467713.jpg" rel="enclosure"/>
    <published>2026-08-21T13:48:09.000Z</published>
    <summary>上篇文章介绍了使用gulp压缩css的方法，不更新压缩js的方法，总感觉少点什么。这篇文章将介绍使用Gulp来压缩js...</summary>
    <title>使用Gulp压缩JS</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="JavaScript" scheme="https://dongzibk.com/categories/JavaScript/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>css、js写好了，不压缩的话虽然不会对访问速度产生太大影响，但多多少少延长了加载时间。日常使用Vue、React、Nuxt等这些框架，在构建时会自动帮我们压缩好静态资源。但如果我们手搓一个纯静态HTML文件，那css要么是使用网页版的一些压缩工具要么是使用本文提到的这个Gulp。</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><p>这个插件依赖于Node.js，nodejs就自行下载安装了。</p><h3 id="认识Gulp"><a href="#认识Gulp" class="headerlink" title="认识Gulp"></a>认识Gulp</h3><p>先来认识一下gulp<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_21/2090684707191046146.jpg" alt="gulp官网"><br>gulp官网有这么一句话，说白了就是压缩文件的。</p><h3 id="初始化项目"><a href="#初始化项目" class="headerlink" title="初始化项目"></a>初始化项目</h3><p>我们的项目目录中，如果没有package.json，先来初始化一下：</p><pre><code class="bash">npm init -y</code></pre><h3 id="安装Gulp"><a href="#安装Gulp" class="headerlink" title="安装Gulp"></a>安装Gulp</h3><p>然后我们来安装gulp和gulp对应压缩css的插件：</p><pre><code class="bash">npm i gulp gulp-clean-css</code></pre><p>我的css存放在目录下css文件夹内，目录结构如下图：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_21/2090686798550712321.jpg" alt="目录结构"></p><h3 id="配置Gulp"><a href="#配置Gulp" class="headerlink" title="配置Gulp"></a>配置Gulp</h3><p>我们在项目根目录下新建个文件<strong>gulpfile.js</strong>，然后编写内容：</p><pre><code class="javascript">const gulp=require(&quot;gulp&quot;)const cleanCss=require(&quot;gulp-clean-css&quot;)function clean()&#123;    return gulp.src(&quot;css/*.css&quot;) // css文件位置    .pipe(cleanCss()) // 执行压缩操作    .pipe(gulp.dest(&quot;dist&quot;)) // 导出到dist文件夹内&#125;exports.clean = clean // 这样可以通过写任务名来执行这个任务</code></pre><h3 id="运行代码"><a href="#运行代码" class="headerlink" title="运行代码"></a>运行代码</h3><p>写好后，我们打开终端，执行这个任务：</p><pre><code class="bash">npx gulp clean</code></pre><p>我们会发现终端会出现以下输出：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_21/2090687382964060161.jpg" alt="gulp输出结果"><br>这时，我们会发现我们项目目录下多了个dist文件夹，里面有个style.css，而这正是我们想要的压缩版。可以来看下压缩前后对比图。</p><h3 id="效果对比图"><a href="#效果对比图" class="headerlink" title="效果对比图"></a>效果对比图</h3><p><strong>压缩前：</strong><br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_21/2090687865480986626.jpg" alt="css压缩前"><br><strong>压缩后：</strong><br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_21/2090688010268360706.jpg" alt="css压缩后"></p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>当然，也有通过gulp-rename插件把压缩后的文件改名为什么什么.min.css的，感兴趣的小伙伴下去可以自行尝试。本文就到这里了。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0821/141557.html</id>
    <link href="https://dongzibk.com/2026/0821/141557.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_21/2090684707191046146.jpg" rel="enclosure"/>
    <published>2026-08-21T06:15:57.000Z</published>
    <summary>css、js写好了，不压缩的话虽然不会对访问速度产生太大影响，但多多少少延长了加载时间。日常使用Vue、React、Nuxt等这些框架，在构建时会自动帮我们压缩好静态资源。但如果我们手搓一个纯静态HTML文件，那css要么是使用网页版的一些压缩工具要么是使用本文提到的这个Gulp...</summary>
    <title>使用Gulp压缩CSS</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="建站教程" scheme="https://dongzibk.com/categories/%E5%BB%BA%E7%AB%99%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>众所周知，Nuxtjs项目部署起来与Vuejs项目部署有些许不同。Vuejs在本地构建后生成可直接上传服务器的静态文件，而Nuxtjs因为涉及服务端渲染，需要由Nodejs实时生成并返回HTML。本文，将从0开始把Nuxtjs项目部署到公网上。</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><h3 id="安装Nodejs"><a href="#安装Nodejs" class="headerlink" title="安装Nodejs"></a>安装Nodejs</h3><p>我们先在服务器上安装Nodejs，这里不使用nvm等工具了，这里在&#x2F;opt文件夹下放Nodejs。首先，我们先拉包：</p><pre><code class="bash">wget https://mirrors.aliyun.com/nodejs-release/v24.18.0/node-v24.18.0-linux-x64.tar.gz</code></pre><p>然后进行解压：</p><pre><code class="bash">tar -zxvf node-v24.18.0-linux-x64.tar.gz</code></pre><p>在这，我嫌他解压后的文件夹名字太长，给改下名字：</p><pre><code class="bash">mv node-v24.18.0-linux-x64 node-2418</code></pre><p>我们这时ll，会发现有个名为<strong>node-2418</strong>的文件夹：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_17/2089263884515348481.png" alt="node-2418"></p><h3 id="配置环境变量"><a href="#配置环境变量" class="headerlink" title="配置环境变量"></a>配置环境变量</h3><p>打开&#x2F;etc&#x2F;<strong>profile</strong>，输入以下进行配置：</p><pre><code>NODEJS_HOME=/opt/node-2418PATH=$PATH:$NODEJS_HOME/binexport PATH</code></pre><p>打开终端，输入以下命令使其生效：</p><pre><code class="bash">source /etc/profile</code></pre><h3 id="检验安装情况"><a href="#检验安装情况" class="headerlink" title="检验安装情况"></a>检验安装情况</h3><p>我们打开终端，当输入node -v和npm -v能发现正常运行即安装成功。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_17/2089264770331381762.png" alt="node-v"></p><h3 id="配置下载源"><a href="#配置下载源" class="headerlink" title="配置下载源"></a>配置下载源</h3><p>因为Nodejs下载包使用的是国外源，速度比较慢，通过输入以下命令使其变为国内源：</p><pre><code class="bash">npm config set registry=https://registry.npmmirror.com/</code></pre><h3 id="安装PM2"><a href="#安装PM2" class="headerlink" title="安装PM2"></a>安装PM2</h3><p>nuxt项目需要使用Node启动，为了保护进程，我们需要使用pm2这款插件，输入以下命令安装：</p><pre><code class="bash">npm i pm2 -g</code></pre><h3 id="上传源码到服务器"><a href="#上传源码到服务器" class="headerlink" title="上传源码到服务器"></a>上传源码到服务器</h3><p>我们Nuxt项目构建后，会生成名为.output的文件夹，我们需要把整个文件夹都上传到服务器。这里上传到&#x2F;www&#x2F;wwwroot&#x2F;nuxt-blog里。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_17/2089266173053440002.png" alt="nuxt构建后文件夹"></p><h3 id="使用PM2启动"><a href="#使用PM2启动" class="headerlink" title="使用PM2启动"></a>使用PM2启动</h3><p>我们打开终端，进到.output&#x2F;server这里。我们可以指定名字，这里以nuxt-blog为例，也可以指定启动端口，这里以3363为例，输入以下命令：</p><pre><code class="bash">PORT=3363 pm2 start ./index.mjs --name &quot;nuxt-blog&quot;</code></pre><p>会出现以下界面：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_17/2089268462858211330.png" alt="pm2-start"><br>我们可以通过pm2 list来查看已启动的列表。</p><h3 id="最终效果"><a href="#最终效果" class="headerlink" title="最终效果"></a>最终效果</h3><p>可以通过绑定域名 反向代理到3363端口，也可以直接防火墙开放3363端口，直接通过ip地址访问。如下图：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_17/2089272269948260353.png" alt="nuxt博客"></p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>以上就是本文全部内容，欢迎大家讨论。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0817/154610.html</id>
    <link href="https://dongzibk.com/2026/0817/154610.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_17/2089266173053440002.png" rel="enclosure"/>
    <published>2026-08-17T07:46:10.000Z</published>
    <summary>众所周知，Nuxtjs项目部署起来与Vuejs项目部署有些许不同。Vuejs在本地构建后生成可直接上传服务器的静态文件，而Nuxtjs因为涉及服务端渲染，需要由Nodejs实时生成并返回HTML。本文，将从0开始把Nuxtjs项目部署到公网上...</summary>
    <title>从0部署Nuxtjs项目</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="操作系统" scheme="https://dongzibk.com/categories/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>接上文，继续更新Linux常用命令</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><h3 id="软链接："><a href="#软链接：" class="headerlink" title="软链接："></a>软链接：</h3><p>可以理解为Windows的快捷方式</p><ul><li>ln -s 真实的文件 软链接路径</li></ul><h3 id="硬链接："><a href="#硬链接：" class="headerlink" title="硬链接："></a>硬链接：</h3><p>相当于备份效果，删除源文件，硬链接文件还能用</p><ul><li>ln 文件 硬链接路径</li></ul><h3 id="nohup："><a href="#nohup：" class="headerlink" title="nohup："></a>nohup：</h3><p>nohup代表不挂机，即使退出终端也会继续执行<br>nohup .&#x2F;f.sh &amp;</p><h3 id="进程："><a href="#进程：" class="headerlink" title="进程："></a>进程：</h3><p>id 用户名：查找用户id<br>ps：显示进程列表<br>ps aux：显示所有进程<br>ps -u 用户名&#x2F;用户id：显示指定用户的进程<br>ps -e –forest：显示进程树</p><h3 id="tar命令："><a href="#tar命令：" class="headerlink" title="tar命令："></a>tar命令：</h3><ul><li>c：创建新的归档文件</li><li>v：输出命令的归档或解包的过程</li><li>f：指定包文件名</li><li>z：使用gzip压缩归档后的文件<br>tar -cvf a.tar a.txt：打包文件<br>tar -zcvf a.tar.gz a.txt：打包并压缩一个文件<br>解压文件到当前目录：<br>tar -xvf a.tar<br>tar -zxvf a.tar.gz<br>（-C：解压到指定目录，目录要存在）</li></ul><h3 id="zip："><a href="#zip：" class="headerlink" title="zip："></a>zip：</h3><p>zip xxx.zip xxx.txt：压缩文件<br>zip -r xxx.zip dir&#x2F;：压缩目录<br>查看压缩包内容：<br>unzip -t xxx.zip<br>unzip -l xxx.zip<br>解压压缩包：<br>unzip xxx.zip<br>unzip xxx.zip -d xxx&#x2F;：指定解压目录，目录可以不存在</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0814/172848.html</id>
    <link href="https://dongzibk.com/2026/0814/172848.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_14/2088178967526182913.png" rel="enclosure"/>
    <published>2026-08-14T09:28:48.000Z</published>
    <summary>接上文，继续更新Linux常用命令...</summary>
    <title>Linux常用命令（二）</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="操作系统" scheme="https://dongzibk.com/categories/%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>最近小编正在学习Linux一些基础命令，特写此文章，也算个笔记吧。</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><h3 id="基本命令"><a href="#基本命令" class="headerlink" title="基本命令"></a>基本命令</h3><p>ls：列出所有目录</p><ul><li>ls -l &#x2F; ll：列出所有目录（显示文件大小、日期等信息）</li><li>ls -a：列出所有目录（包括隐藏的目录）<br>pwd：查看当前工作目录<br>mkdir：创建目录<br>touch：新建文件<br>cp：拷贝文件<br>mv：移动文件<br>rm：删除文件（rm -f：不提示来删除文件）<br>cat：显示文件内容（-n：显示行号）<br>which：查找并显示指定命令的绝对路径</li></ul><h3 id="系统显示"><a href="#系统显示" class="headerlink" title="系统显示"></a>系统显示</h3><p>uname：显示系统内核信息（-a：显示完整信息）<br>date：显示计算机当前时间<br>uptime：显示计算机运行了多长时间（-p：以人类可读形式输出；-s：以yyyy-mm-dd显示）<br>df：以磁盘分区查看文件系统<br>du -sh：查看当前目录大小<br>free -h：查看内存使用情况<br>echo：输出（-e：转义输出）</p><h3 id="网络状态"><a href="#网络状态" class="headerlink" title="网络状态"></a>网络状态</h3><p>如果没有ifconfig，就安装net-tools这个软件包<br>ifconfig：查看IP地址<br>ip addr<br>history：查看历史命令<br>history 10：显示最新的10条命令</p><h3 id="软件包管理"><a href="#软件包管理" class="headerlink" title="软件包管理"></a>软件包管理</h3><p>yum：(-y 确认yum)<br>yum remove：卸载软件包</p><h3 id="重启、关机"><a href="#重启、关机" class="headerlink" title="重启、关机"></a>重启、关机</h3><p>shutdown -h now：现在关机<br>shutdown -r now：现在重启<br>reboot：重启</p><h3 id="文件传输："><a href="#文件传输：" class="headerlink" title="文件传输："></a>文件传输：</h3><p>（-P：指定远程主机端口号、-p：保留文件最后修改时间、最后访问时间）<br>scp 文件名称 root@目标主机:目标目录：将本地文件传到远程主机<br>scp root@目标主机:目标目录 文件目录：下载远程主机文件到本地</p><h3 id="文件查找"><a href="#文件查找" class="headerlink" title="文件查找"></a>文件查找</h3><p>find . -name 1.txt：在当前目录下查找名字为1.txt的文件<br>find . -iname 1.txt：在当前目录下查找名字为1.txt的文件（不区分大小写）</p><h3 id="更改文件权限"><a href="#更改文件权限" class="headerlink" title="更改文件权限"></a>更改文件权限</h3><p>4  2 1：r w x<br>chmod 777 xxx.txt：表示属主、组用户、其他用户都具有可读可写可执行的权限</p><h3 id="wget"><a href="#wget" class="headerlink" title="wget"></a>wget</h3><p>wget -O aaa.txt <a href="http://localhost/fwefwef%EF%BC%9A%E4%B8%8B%E8%BD%BD%E6%96%87%E4%BB%B6%E5%B9%B6%E6%8C%87%E5%AE%9A%E5%90%8D%E5%AD%97%E4%B8%BAaaa.txt">http://localhost/fwefwef：下载文件并指定名字为aaa.txt</a></p><ul><li>–spider：测试下载链接</li></ul><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>不断更新中…</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0814/151833.html</id>
    <link href="https://dongzibk.com/2026/0814/151833.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_14/2088178967526182913.png" rel="enclosure"/>
    <published>2026-08-14T07:18:33.000Z</published>
    <summary>最近小编正在学习Linux一些基础命令，特写此文章，也算个笔记吧...</summary>
    <title>Linux常用命令（一）</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="人工智能" scheme="https://dongzibk.com/categories/%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>之前听许多ai编程软件，如cursor、coplit、claude code、codex等等，但一直没用过，因为考虑到烧token的话挺花钱的。前天还是大前天，在b站上刷到个用Claude code搭配deepseek来写代码的视频，看完后想着试试。</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><h3 id="安装Node-js"><a href="#安装Node-js" class="headerlink" title="安装Node.js"></a>安装Node.js</h3><p>使用Claude的第一步需要先安装Node.js，这就不介绍了，可去<a href="https://nodejs.org/zh-cn/download">官网</a>下载。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_12/2087412694819213313.png" alt="Node.js下载"></p><h3 id="全局安装Claude"><a href="#全局安装Claude" class="headerlink" title="全局安装Claude"></a>全局安装Claude</h3><p>打开命令行，输入以下命令全局安装Claude：</p><pre><code class="bash">npm install -g @anthropic-ai/claude-code</code></pre><h3 id="配置Claude"><a href="#配置Claude" class="headerlink" title="配置Claude"></a>配置Claude</h3><p>安装好之后，下来就是给Claude配置模型了。这里以deepseek为例，打开windows电脑目录<strong>C:\Users\用户名</strong>，在里面新建个名为.claude.json的文件，插入以下内容：</p><pre><code class="json">&#123;  &quot;env&quot;: &#123;    &quot;ANTHROPIC_AUTH_TOKEN&quot;: &quot;这里填api Key&quot;,    &quot;ANTHROPIC_BASE_URL&quot;: &quot;https://api.deepseek.com/anthropic&quot;,    &quot;ANTHROPIC_MODEL&quot;: &quot;deepseek-v4-pro[1m]&quot;,    &quot;ANTHROPIC_DEFAULT_OPUS_MODEL&quot;: &quot;deepseek-v4-pro[1m]&quot;,    &quot;ANTHROPIC_DEFAULT_SONNET_MODEL&quot;: &quot;deepseek-v4-pro[1m]&quot;,    &quot;ANTHROPIC_DEFAULT_HAIKU_MODEL&quot;: &quot;deepseek-v4-flash&quot;,    &quot;CLAUDE_CODE_SUBAGENT_MODEL&quot;: &quot;deepseek-v4-flash&quot;,    &quot;CLAUDE_CODE_EFFORT_LEVEL&quot;: &quot;max&quot;,    &quot;CLAUDE_CODE_AUTO_COMPACT_WINDOW&quot;: &quot;786432&quot;,    &quot;API_TIMEOUT_MS&quot;: &quot;3000000&quot;,    &quot;CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC&quot;: 1,  &#125;&#125;</code></pre><h3 id="使用Claude"><a href="#使用Claude" class="headerlink" title="使用Claude"></a>使用Claude</h3><p>我们打开终端，输入<strong>claude</strong>，如果能打开，并且能够成功回复的话，即配置成功，可以使用Claude code了。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_12/2087414810497454081.png" alt="Claude code"></p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>这几天用Claude在折腾，产生的费用也不少。但看网上对比起来，deepseek的价格比其他模型来说还是便宜的，但也看最近有公告说<strong>计划近期整体上调 DeepSeek API 服务的定价，预计涨幅较大</strong>。本篇文章就介绍到这，欢迎小伙伴们讨论.</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0812/133143.html</id>
    <link href="https://dongzibk.com/2026/0812/133143.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_12/2087414810497454081.png" rel="enclosure"/>
    <published>2026-08-12T05:31:43.000Z</published>
    <summary>之前听许多ai编程软件，如cursor、coplit、claude code、codex等等，但一直没用过，因为考虑到烧token的话挺花钱的。前天还是大前天，在b站上刷到个用Claude code搭配deepseek来写代码的视频，看完后想着试试，使用Claude的第一步需要先安装Node.js，这就不介绍了...</summary>
    <title>记从0使用Claude code写代码</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="后端语言" scheme="https://dongzibk.com/categories/%E5%90%8E%E7%AB%AF%E8%AF%AD%E8%A8%80/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>说起对密码加密，常见的莫不有密码加上盐值然后整体使用md5，这样，就算黑客能拿到用户密码存放的那张数据表，但因为盐值不一样，破解起来也是相当耗时耗力。而我自己之前使用的加密方式就更low了，我使用的同一盐值，直到我那天看康师傅有个课程的视频后，才知道有Bcrypt这个专门对密码仅加密的东西。</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><h3 id="Bcrypt加密是什么？"><a href="#Bcrypt加密是什么？" class="headerlink" title="Bcrypt加密是什么？"></a>Bcrypt加密是什么？</h3><p>下面给到一段AI介绍：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_10/2086647460575776770.png" alt="Bcrypt加密"></p><h3 id="如何在PHP中使用Bcrypt？"><a href="#如何在PHP中使用Bcrypt？" class="headerlink" title="如何在PHP中使用Bcrypt？"></a>如何在PHP中使用Bcrypt？</h3><p>因为我能力有限，平时做一些自己用的项目 开发api的时候，往往使用的php。在这里，主要介绍如何在PHP中使用Bcrypt。其实很简单，加密的时候使用**password_hash()<strong>函数，比对的时候使用</strong>password_verify()**函数。</p><h4 id="password-hash函数"><a href="#password-hash函数" class="headerlink" title="password_hash函数"></a>password_hash函数</h4><p>它有两个参数，第一个是密码明文，即我们想要加密的密码，比如123456、su666.等。在这里给一段示例代码：</p><pre><code class="php">&lt;?php $password=&quot;123456&quot;;$encoded_password=password_hash($password,PASSWORD_BCRYPT);echo $encoded_password;?&gt;</code></pre><p>我们打开浏览器，会发现网页中出现一串经过加密的字符串：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_10/2086648585894957057.png" alt="bcrypt加密后结果"></p><p>那能否精确比对上呢？</p><h4 id="password-verify-函数"><a href="#password-verify-函数" class="headerlink" title="password_verify()函数"></a>password_verify()函数</h4><p>这个函数有两个参数，第一个是密码明文，即我们前面所说的123456等，第二个是加密后的字符串。函数会使用特定的逻辑，去比对密码明文经过加密后是不是后面的字符串。下面给段示例代码：</p><pre><code class="php">$hash=&#39;$2y$10$Yn5PX34h3Vbg6r.2j77FjOqVe47d.EBMa4GYSJIUAZb1hSyzRT2.S&#39;;echo &quot;比对的结果是：&quot;.password_verify(&quot;123456&quot;,$hash);</code></pre><p>我们打开网页，发现：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_10/2086649972296978434.png" alt="匹配结果"></p><p>即完美匹配上</p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>以上就是本文全部内容，欢迎小伙伴们讨论交流。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0810/104830.html</id>
    <link href="https://dongzibk.com/2026/0810/104830.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_10/2086647460575776770.png" rel="enclosure"/>
    <published>2026-08-10T02:48:30.000Z</published>
    <summary>说起对密码加密，常见的莫不有密码加上盐值然后整体使用md5，这样，就算黑客能拿到用户密码存放的那张数据表，但因为盐值不一样，破解起来也是相当耗时耗力。而我自己之前使用的加密方式就更low了，我使用的同一盐值，直到我那天看康师傅有个课程的视频后，才知道有Bcrypt这个专门对密码仅加密的东西...</summary>
    <title>PHP实现密码加密</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="建站教程" scheme="https://dongzibk.com/categories/%E5%BB%BA%E7%AB%99%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>之前的文章大多是关于使用Hexo静态博客框架来建站的，这一篇，将主要介绍下如何使用wordpress搭建一个优美的网站。wordpress是什么？它是一款动态博客框架，官方是这样描述它的：<strong>博客工具、发布平台和内容管理系统</strong></p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><h3 id="安装wordpress"><a href="#安装wordpress" class="headerlink" title="安装wordpress"></a>安装wordpress</h3><p>首先，我们来到官方 <a href="https://cn.wordpress.org/download/">下载地址</a> 来进行下载，可以选择使用最新版的，也可以点击下面的<strong>发行版本</strong>选择之前的旧版，因为一些wp主题使用老版本php写的，对于使用最新版PHP的wordpress来说可能会报错等一系列问题。这里，本文选择使用<strong>5.3.11</strong>版本的。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_07/2085610238917414914.png" alt="wordpress下载页面"></p><p>然后，我们把压缩包的所有内容放到网站根目录下，这时，我们在浏览器输入地址，就会弹出界面，让我们选择语言、配置数据库信息和网站基本信息，配置好后登录进来大概是如下图这般摸样：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_07/2085611416216604673.png" alt="wordpress后台界面"></p><p>只不过这时，使用的主题是wordpress官方自带的，比较丑吧，我们访问域名（即门户），会发现是下面这个样子：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_07/2085611922662035457.png" alt="wordpress门户预览图"></p><h3 id="安装主题"><a href="#安装主题" class="headerlink" title="安装主题"></a>安装主题</h3><p>这时，我们就要更换主题了，这里以我找的一款自以为还不错的wp主题做示例，感兴趣的小伙伴可以去Gitee仓库<a href="https://gitee.com/weipxiu/Art_Blog">访问</a>，然后用git把代码克隆到本地，我们只需要仓库里的<strong>Art_Blog.zip</strong>，这是作者已经帮我们打包好的主题源码。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_07/2085613124627927041.png" alt="Art_Blog.zip"><br>然后，我们来到wordpress后台，点击外观选项卡-&gt;主题，点击添加，点击上传主题，大概到下面这个界面：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_07/2085613553357099009.png" alt="wordpress上传主题"></p><p>我们点击选择文件，选择刚刚仓库里的zip文件，点击<strong>现在安装</strong>，过会儿后，会出现以下界面，我们点击<strong>启用</strong>，即可使用这个主题。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_07/2085614098176217090.png" alt="启用wordpress主题"></p><h3 id="配置主题"><a href="#配置主题" class="headerlink" title="配置主题"></a>配置主题</h3><p>这时，我们会发现左边侧边栏多出了一个<strong>主题配置</strong>，这就是用于配置这个主题的。主题可配置内容很多，比如门户侧边栏视频宣传、轮播图效果（翻转、爆炸、翻页等）等等。这里就给一张里面某些配置的图吧：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_07/2085616838029807617.png" alt="Art_Blog主题配置"></p><p>我们这里使用示例数据简单配置一下，这时，我们再打开门户大概就是下面这个页面：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_07/2085615841127632897.png" alt="主题预览"></p><h3 id="其余事项"><a href="#其余事项" class="headerlink" title="其余事项"></a>其余事项</h3><p>在wordpress里写文章，好像不支持Markdown格式，感兴趣的可以试试有没有一些插件可以辅助的。主题作者在写文章页面里提供了多样功能，如设置某段内容为加密可见、登录可见等等。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_07/2085617357058150401.png" alt="wordpress写文章页面"></p><p>除此之外，我们也可以在<strong>链接</strong>页面添加友链等，主题也内置了友情链接页面。总之，这款主题还是挺不错的，主题作者之前也录制了一个使用这款主题的视频教程。</p><p>稍有遗憾的是，这款主题目前已经停止维护了，主题代码中一些比如评论区获取IP地理位置的api也失效了，我前些天将代码克隆到本地，稍微的进行了修改，换了换api。感兴趣的小伙伴，同样可以自行在主题原有代码基础上进行改造。</p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>不过，wordpress体积较大，相对来说比较臃肿，另一款动态博客框架typecho就比较轻量，好看的主题也不少，感兴趣的小伙伴可以下去自行研究。这篇文章就到这里了，欢迎各位小伙伴评论区讨论。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0807/140736.html</id>
    <link href="https://dongzibk.com/2026/0807/140736.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_07/2085615841127632897.png" rel="enclosure"/>
    <published>2026-08-07T06:07:36.000Z</published>
    <summary>之前的文章大多是关于使用Hexo静态博客框架来建站的，这一篇，将主要介绍下如何使用wordpress搭建一个优美的网站。wordpress是什么？它是一款动态博客框架，官方是这样描述它的：博客工具、发布平台和内容管理系统...</summary>
    <title>从0使用WordPress搭建一个优美的网站</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="JavaScript" scheme="https://dongzibk.com/categories/JavaScript/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>你是否也在别人网站底部见到这样一个东西，即<strong>网站运行时间</strong>，效果如下图所示：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_06/2085230819614855169.png" alt="网站运行时间"><br>那么是如何通过js实现的呢？请看正文</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><p>实现着其实也不难，我们只需要拿到现在的和建站时的时间戳之差，这个差值是毫秒，我们除以1000就成秒了，那么下来除以60换成分钟、秒除以3600换成小时等等就清晰了。</p><p>想要精确到已经运行了几秒，就可以再来个定时器，每1秒重新获取时间戳之差然后计算即可。</p><p>下面放一段我自己手搓的js代码：</p><pre><code class="javascript">let obj=document.getElementById(&quot;running_time&quot;);let buildDate = new Date(&quot;2026-07-18 00:00:00&quot;),nowDate = new Date();setInterval(()=&gt;&#123;    nowDate=new Date();    let passedTime = (nowDate - buildDate)/1000;    let year = parseInt(passedTime/3600/24/365),        day = parseInt((passedTime-(year*365*24*3600))/3600/24),        hour = parseInt((passedTime-(year*365*24*3600)-(day*24*3600))/3600),        minute = parseInt((passedTime-(year*365*24*3600)-(day*24*3600)-(hour*3600))/60),        seconds=parseInt((passedTime-(year*365*24*3600)-(day*24*3600)-(hour*3600)-(minute*60)));        obj.innerText=`$&#123;year&#125;年$&#123;day&#125;天$&#123;hour&#125;时$&#123;minute&#125;分$&#123;seconds&#125;秒`;            &#125;,1000);</code></pre><h3 id="使用方法"><a href="#使用方法" class="headerlink" title="使用方法"></a>使用方法</h3><p>在网站底部添加这样一段HTML代码：</p><pre><code class="html">&lt;p&gt;当前网站已经运行：&lt;span id=&quot;running_time&quot;&gt;加载中...&lt;/span&gt;&lt;/p&gt;</code></pre><p>然后把上面那段js代码放在body标签后即可。</p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>当然，自己手搓的难免有缺陷，欢迎小伙伴们提供更完美的思路和方案。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0806/130326.html</id>
    <link href="https://dongzibk.com/2026/0806/130326.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_06/2085230819614855169.png" rel="enclosure"/>
    <published>2026-08-06T05:03:26.000Z</published>
    <summary>你是否也在别人网站底部见到这样一个东西，即网站运行时间，效果如下图所示，实现着其实也不难，我们只需要拿到现在的和建站时的时间戳之差...</summary>
    <title>JS实现在网站底部添加运行时间</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="建站教程" scheme="https://dongzibk.com/categories/%E5%BB%BA%E7%AB%99%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>使用Hexo等框架等搭建博客，除了加载速度快这一个优点，还有一个是，免去部署后端服务而使用虚拟主机&#x2F;服务器的成本。这篇文章将主要介绍如何在Vercel上部署Hexo博客。除了Vercel，在Cloudflare Pages、Edgeone Pages上同样可以。</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><h3 id="操作步骤"><a href="#操作步骤" class="headerlink" title="操作步骤"></a>操作步骤</h3><p>首先，我们在Github上创建个仓库，然后把我们整个项目代码推上去。推上去后的仓库目录结构图大概如下图所示：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_01/2083491701394444289.png" alt="github"><br>然后呢，我们打开<a href="https://vercel.com/">Vercel</a>，点击右上角登录，可以选择使用Github登录。</p><p>登录进来后，我们点击右上角Adds按钮，选择下面的Project<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_01/2083492350723035138.png" alt="Vercel"></p><p>然后，在左边会让我们选择要导入哪个仓库：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_01/2083492814181044225.png" alt="Vercel导入仓库"></p><p>我们点击右边的<strong>import</strong>按钮，然后，我们会发现，它会识别出我们项目用的哪个框架<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_01/2083493131266232322.png"><br>之后，我们点击下方的<strong>Deploy</strong>按钮部署即可，部署好后，大概如下图所示：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_01/2083493565074706433.png"><br>我们点击Domains旁边的加号按钮，添加我们自己的域名，然后做好DNS解析，我们就可以用自己的域名访问到了。</p><h3 id="与以前方式的不同"><a href="#与以前方式的不同" class="headerlink" title="与以前方式的不同"></a>与以前方式的不同</h3><p>前几年，我记着是用下面的命令，先生成静态页面然后再把生成的静态页面推到Github，利用Github Pages来放到公网。</p><pre><code class="bash">hexo g &amp;&amp; hexo d</code></pre><p>而使用Vercel、Cloudflare Pages、Edgeone Pages等这些服务的时候，我们只用把整个项目代码推上去，这些服务会识别我们用的什么框架，然后自动帮我们构建，并把构建好的页面自动放在公网上，一定程度上，省去了些步骤。</p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>这篇文章到这里就结束了，感谢浏览，欢迎评论区讨论。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0801/172852.html</id>
    <link href="https://dongzibk.com/2026/0801/172852.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_08_01/2083493565074706433.png" rel="enclosure"/>
    <published>2026-08-01T09:28:52.000Z</published>
    <summary>使用Hexo等框架等搭建博客，除了加载速度快这一个优点，还有一个是，免去部署后端服务而使用虚拟主机/服务器的成本。这篇文章将主要介绍如何在Vercel上部署Hexo博客。除了Vercel，在Cloudflare Pages、Edgeone Pages上同样可以...</summary>
    <title>在Vercel上部署Hexo博客</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="建站教程" scheme="https://dongzibk.com/categories/%E5%BB%BA%E7%AB%99%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>什么是Hexo？官网是这样介绍的<strong>快速、简洁且高效的博客框架</strong>，顾名思义，是一款博客框架，与wordpress、typecho等有区别的它是一款静态博客框架。也就是说，它不会有数据库，它也不会用php啊java啊等语言动态渲染，写好文章后，通过使用命令，它会生成博客所需的所有静态页面，我们只需要把这些静态页面放到服务器上或通过Vercel、一些Pages服务部署到公网上即可。</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><h3 id="前置准备"><a href="#前置准备" class="headerlink" title="前置准备"></a>前置准备</h3><p>Hexo依赖Node.js，我们首先需要在电脑上安装Node.js，可以前往<a href="https://nodejs.org/zh-cn">官网</a>下载。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_26/2081218965576433665.png" alt="Nodejs官网图"></p><h3 id="安装脚手架"><a href="#安装脚手架" class="headerlink" title="安装脚手架"></a>安装脚手架</h3><p>安装好之后，我们来安装hexo脚手架，打开终端，输入以下命令：</p><pre><code class="bash">npm install hexo-cli -g</code></pre><h3 id="创建Hexo项目"><a href="#创建Hexo项目" class="headerlink" title="创建Hexo项目"></a>创建Hexo项目</h3><p>安装好之后，我们打开一个文件夹，通过输入以下命令来创建一个Hexo项目</p><pre><code class="bash">hexo init blog</code></pre><p>待命令执行结束，我们会发现原本的文件夹多一个名为<strong>blog</strong>的文件夹，这就是我们创建的Hexo博客项目，目录结构大概如下图：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_26/2081220343216553986.png" alt="Hexo目录结构"></p><h3 id="效果预览"><a href="#效果预览" class="headerlink" title="效果预览"></a>效果预览</h3><p>在这里就大功告成一半了，我们这时打开终端，输入以下命令，在本地进行预览：</p><pre><code class="bash">hexo s</code></pre><p>它会给出个地址，我这里是<strong>localhost:4000</strong>，打开后如下图：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_26/2081220998673022977.png" alt="Hexo博客预览图"></p><h3 id="常用命令"><a href="#常用命令" class="headerlink" title="常用命令"></a>常用命令</h3><h4 id="新建文章"><a href="#新建文章" class="headerlink" title="新建文章"></a>新建文章</h4><p>在Hexo中，如何创建文章呢，我们在命令行输入以下命令：</p><pre><code class="bash">hexo new &quot;我的第一篇文章&quot;</code></pre><p>输入完以上命令后，我们发现我们项目目录下的source&#x2F;_posts&#x2F;会多出一个文件：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_26/2081221768122286081.png" alt="Hexo文章目录图"><br>这也就是我们刚刚新建的文章，我们可以用Markdown格式来写文章了，写完之后，通过刚刚的本地预览命令就可以在本地查看效果。</p><h4 id="部署上线"><a href="#部署上线" class="headerlink" title="部署上线"></a>部署上线</h4><p>我们通过输入以下命令，就可以让Hexo给我们生成静态文件：</p><pre><code class="bash">hexo clean &amp;&amp; hexo g</code></pre><p>这时，我们项目根目录下会多出一个文件夹叫public，打开后如下：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_26/2081222439194148866.png"><br>这里面就是Hexo为我们生成的静态页面，我们把它丢到服务器或虚拟主机上即可，也可以用另一种方式。</p><p>即将项目所有代码推送到Github仓库里，让Vercel、Cloudflare Pages来帮我们部署，Edgeone Pages同样也可以，大家可以根据自己需求自行选择。</p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>到这，本篇文章就结束了，感谢小伙伴们的浏览。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0726/111729.html</id>
    <link href="https://dongzibk.com/2026/0726/111729.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_26/2081220998673022977.png" rel="enclosure"/>
    <published>2026-07-26T03:17:29.000Z</published>
    <summary>什么是Hexo？官网是这样介绍的快速、简洁且高效的博客框架，顾名思义，是一款博客框架，与wordpress、typecho等有区别的它是一款静态博客框架。也就是说，它不会有数据库，它也不会用php啊java啊等语言动态渲染，写好文章后，通过使用命令...</summary>
    <title>从0搭建一个Hexo博客</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="建站教程" scheme="https://dongzibk.com/categories/%E5%BB%BA%E7%AB%99%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>站点地图并不陌生，它里面包含一个网站所有的链接，搜索引擎的爬虫通过扫描这个文件提取链接非常方便。市面上的Hexo主题大多都自带有生成站点地图这个功能，那么如何在一个没有带这个功能的或者是在自己创建的新主题中添加上呢？</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><p>最后生成的效果呢，可以参考如下图：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_24/2080497047038672897.png" alt="站点地图预览"></p><p>如何操作呢？步骤不难<br>首先，安装生成站点地图的插件，即在hexo项目中输入以下命令：</p><pre><code class="bash">npm i hexo-generator-sitemap -S</code></pre><p>安装好插件之后，打开根目录下的_config.yml，在最后面写入配置：</p><pre><code class="yml"># 通用站点地图 sitemap.xmlsitemap:  path: sitemap.xml  priority: 0.5          # 页面权重 0.0~1.0  changefreq: daily      # 更新频率：daily每日/weekly每周/monthly每月  lastmod: true          # 显示文章最后修改时间  tags: false             # 包含标签页  categories: false       # 包含分类页</code></pre><p>因为我博客不想搞那么多花里胡哨的，比如说弄个标签页、分类页啥的，所以这两个我填的false，大家可根据自己需求自行修改。</p><p>到这里，基本上就结束了，但市面上还有一个插件好像是专门针对百度搜索引擎，弄的一个百度sitemap生成插件。其实，这两者也没有多大区别，这个插件生成的sitemap预览图如下：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_24/2080498267509833730.png" alt="百度sitemap预览"><br>这里就不专门介绍这个插件了，有需要的可以参考网上教程或直接问AI。</p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>本文到这里就结束了，感谢小伙伴们的浏览。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0724/113106.html</id>
    <link href="https://dongzibk.com/2026/0724/113106.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_24/2080498267509833730.png" rel="enclosure"/>
    <published>2026-07-24T03:31:06.000Z</published>
    <summary>站点地图并不陌生，它里面包含一个网站所有的链接，搜索引擎的爬虫通过扫描这个文件提取链接非常方便。市面上的Hexo主题大多都自带有生成站点地图这个功能，那么如何在一个没有带这个功能的或者是在自己创建的新主题中添加上呢...</summary>
    <title>Hexo实现生成站点地图</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="建站教程" scheme="https://dongzibk.com/categories/%E5%BB%BA%E7%AB%99%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>在使用Hexo建站时，如果使用一些没加源码压缩的主题，检查网页源代码时会发现网页结构比较松散，一些css、js文件也没有压缩。就如下图这样，虽然没啥太大影响吧，但我想着如果能把源码压缩下，在访问速度上也会带来一定程度的提升。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_20/2079033285207212034.png" alt="网页源代码"></p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><p>市面上能实现这样功能的hexo插件很多，最开始我尝试的是 <strong>hexo-neat</strong>，但发现对本地js文件压缩不了，可能是因为有ES6语法的缘故。后来转到<strong>hexo-all-minifier</strong>这个插件，可以说是完全满足了需求。</p><h3 id="插件安装"><a href="#插件安装" class="headerlink" title="插件安装"></a>插件安装</h3><p>在命令行输入下面命令，将该插件安装到我们的博客项目中</p><pre><code class="bash">npm i hexo-all-minifier -S</code></pre><h3 id="插件配置"><a href="#插件配置" class="headerlink" title="插件配置"></a>插件配置</h3><p>接着，我们打开项目根目录下的**_config.yml**，在最后面插入以下代码：</p><pre><code class="yml"># 静态资源压缩html_minifier:  enable: true  exclude:css_minifier:  enable: true  exclude:    - &#39;**/*.min.css&#39; # 已压缩的css跳过js_minifier:  enable: true  mangle: true # 混淆变量名，压缩更强  compress: true  exclude:    - &#39;**/*.min.js&#39; # 跳过已压缩js    - &#39;**/comment*.js&#39; # 评论插件JS报错就加入排除# 图片压缩（可选关闭）image_minifier:  enable: false</code></pre><h3 id="插件效果"><a href="#插件效果" class="headerlink" title="插件效果"></a>插件效果</h3><p>之后，不管我们是<strong>hexo s</strong>来本地预览，还是<strong>hexo g</strong>生成静态页面，都可以发现我们的html、css、js文件都被进行了压缩，效果可以参考下图：<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_20/2079035403540447234.png" alt="压缩后的网页源代码图片"></p><h2 id="后记"><a href="#后记" class="headerlink" title="后记"></a>后记</h2><p>那么本篇文章就分享到这，欢迎小伙伴们评论区讨论哦。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0720/103633.html</id>
    <link href="https://dongzibk.com/2026/0720/103633.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_20/2079033285207212034.png" rel="enclosure"/>
    <published>2026-07-20T02:36:33.000Z</published>
    <summary>在使用Hexo建站时，如果使用一些没加源码压缩的主题，检查网页源代码时会发现网页结构比较松散，一些css、js文件也没有压缩。就如下图这样，虽然没啥太大影响吧，但我想着如果能把源码压缩下，在访问速度上也会带来一定程度的提升...</summary>
    <title>Hexo实现代码压缩</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <content>
      <![CDATA[<h2 id="为什么用Hexo"><a href="#为什么用Hexo" class="headerlink" title="为什么用Hexo"></a>为什么用Hexo</h2><p>它是静态博客框架，我可以托管在Cloudflare、Vercel上，一定程度上来说，省去了一些使用动态博客的成本。</p><h2 id="第一次尝试Hexo主题制作"><a href="#第一次尝试Hexo主题制作" class="headerlink" title="第一次尝试Hexo主题制作"></a>第一次尝试Hexo主题制作</h2><p>之前也试过Hexo这些静态博客框架，但感觉很难找到心仪的主题和满足自己的主题配置，也没再尝试过。今天(2026年7月18日)，我想着看着文档能不能简单搓一个差不多的。我让豆包给我生成了个静态的博客HTML，然后我给它整合到Hexo里，我对ejs、pug模版引擎不熟悉，又问了问豆包基本的用法，整合的过程中也不乏遇到问着豆包但报错仍不停止的情况，这可让我甚是为难。<br><img src="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_18/2078361931810160641.png" alt="报错图片"></p><p>这些基本的弄好后，开始给文章等页面嵌入评论，使用的Twikoo，官方文档介绍的很详细，配置起来也比较简单。</p><p>我也将慢慢不断探索Hexo，力使主题趋于完善、访问体验趋于最佳。</p>]]>
    </content>
    <id>https://dongzibk.com/2026/0718/121807.html</id>
    <link href="https://dongzibk.com/2026/0718/121807.html"/>
    <link href="https://pub-cdn-2024.sunofbeaches.com/sob-v3/images/2026_07_18/2078361931810160641.png" rel="enclosure"/>
    <published>2026-07-18T04:18:07.000Z</published>
    <summary>它是静态博客框架，我可以托管在Cloudflare、Vercel上，一定程度上来说，省去了一些使用动态博客的成本，之前也试过Hexo这些静态博客框架，但感觉很难找到心仪的主题和满足自己的主题配置...</summary>
    <title>第一篇文章</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
  <entry>
    <author>
      <name>东子</name>
    </author>
    <category term="建站教程" scheme="https://dongzibk.com/categories/%E5%BB%BA%E7%AB%99%E6%95%99%E7%A8%8B/"/>
    <content>
      <![CDATA[<h2 id="前言"><a href="#前言" class="headerlink" title="前言"></a>前言</h2><p>众所周知，市场上许多博客框架，如wordpress、typecho等，自己也想试着开发一下。<br>大概是两年前吧，做了一个简易的个人博客系统，但没有前后端分离，相当于html和php相互嵌套着。<br>这次重新做一个的话，考虑到前后端分离，就需要写后端和前端代码。</p><h2 id="正文"><a href="#正文" class="headerlink" title="正文"></a>正文</h2><p>看网上许多都是用Springboot开发后端api，因为对这方面不熟悉，还是选择使用PHP开发。<br>后台前端当然用Vue.js开发，前台前端本来打算用Nuxt.js开发，因为对SEO友好，不像Vue.js。但是对Nuxt不熟悉，导致部署到服务器上运行不了，最后决定前台前端也是用Vue.js开发。</p><p>当然，以上这些只是基本的思路，更需要一个详细的方案，比如说数据表怎么设计、api请求地址啊请求参数啊都需要考虑，这里，简单放一下，我在开发之前做的有关文档：<br><img src="https://images.sunofbeaches.com//images/2025_08_02/1951516405480423426.png" alt="图片描述"><br><img src="https://images.sunofbeaches.com//images/2025_08_02/1951516549848367106.png" alt="图片描述"><br>然后，给看一下，最后的后台前端开发效果：<br><img src="https://images.sunofbeaches.com//images/2025_08_02/1951516700595847169.png" alt="图片描述"><br><img src="https://images.sunofbeaches.com//images/2025_08_02/1951516835597910018.png" alt="图片描述"><br>在这里，提一下，因为后台这里要发布文章，之前看大锯老师的课程，用过<strong>mavon-editor</strong>这个编辑器，最后选择使用这个Vue编辑器，<br><img src="https://images.sunofbeaches.com//images/2025_08_02/1951517193657253890.png" alt="图片描述"><br>因为没仔细看文档，简略的按照文档上的提示，使用了之后发现显示不出来以及控制台报错，最后看了一下，像使用Vue.js3的话，要安装对应的3.0以上版本，我打开package.json看了一下，是2.多的，我又安装了一遍，最后才显示出来。emmm，这也相当于一次摸索。</p><p>下来，给看一下前台效果：<br><img src="https://images.sunofbeaches.com//images/2025_08_02/1951517334703308801.png" alt="图片描述"><br>文章 &#x2F; 动态 页面：<br><img src="https://images.sunofbeaches.com//images/2025_08_02/1951517414881624065.png" alt="图片描述"><br>友链页面：<br><img src="https://images.sunofbeaches.com//images/2025_08_02/1951517574965624833.png" alt="图片描述"><br>前台这些样式设计参考了网上一些优秀网站，模仿的写了写样式。本来在考虑是否做评论这个模块，后来想了想，还是做吧，开发好对应api之后，在vue中把评论封装为一个组件，大概样式如下：<br><img src="https://images.sunofbeaches.com//images/2025_08_02/1951517704443789314.png" alt="图片描述"><br>因本人能力有限，目前仅支持一级评论。因为不太了解如何用PHP写获取评论列表这个API中，对应的把二级评论给添上去，后续有时间的话，可以再琢磨琢磨。</p><h2 id="后文"><a href="#后文" class="headerlink" title="后文"></a>后文</h2><p>以上，就是对于分享这次开发个人简易博客系统的体会，感谢您的浏览，欢迎在评论区讨论。</p>]]>
    </content>
    <id>https://dongzibk.com/2025/0802/134000.html</id>
    <link href="https://dongzibk.com/2025/0802/134000.html"/>
    <link href="https://images.sunofbeaches.com//images/2025_08_02/1951516700595847169.png" rel="enclosure"/>
    <published>2025-08-02T05:40:00.000Z</published>
    <summary>众所周知，市场上许多博客框架,如wordpress、typecho等,自己也想试着开发一下。大概是两年前吧，做了一个简易的个人博客系统，但没有前后端分离，相当于html和php相互嵌套着。这次重新做一个的话，考虑到前后端分离，就需要写后端和前端代码...</summary>
    <title>记开发简易个人博客系统</title>
    <updated>2026-08-25T13:55:30.586Z</updated>
  </entry>
</feed>
