Skip to content

Commit

Permalink
Deploying to gh-pages from @ 951e30b 🚀
Browse files Browse the repository at this point in the history
  • Loading branch information
imbant committed Nov 7, 2024
1 parent 8870913 commit 262ad2a
Show file tree
Hide file tree
Showing 112 changed files with 62 additions and 3,140 deletions.
329 changes: 0 additions & 329 deletions 1970/01/01/暂存区/index.html

Large diffs are not rendered by default.

35 changes: 0 additions & 35 deletions 2019/08/09/Node-require-执行细节/index.html
Original file line number Diff line number Diff line change
@@ -1,35 +0,0 @@
<!DOCTYPE html><html lang="zh-CN"><head><meta name="google-site-verification" content="_s8zp9HC5xK3I7RCh_8RJrSUgYtyNgc09bZvTV11nFI"><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"><meta content="yes" name="apple-mobile-web-app-capable"><meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"><meta content="telephone=no" name="format-detection"><meta name="description" content="imbant 前端工程师技术博客"><meta name="keywords" content="前端,imbant,技术博客,浏览器,Electron,React,Vue,Node,Webpack,Vite,Chrome"><title>Node require 执行细节 | imbAnt's blog</title><link rel="stylesheet" type="text/css" href="/blog/css/style.css?v=1.0.0"><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/purecss/build/pure-min.min.css"><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/purecss/build/grids-responsive-min.css"><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css"><script type="text/javascript" src="//cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script><link rel="icon" mask="" sizes="any"><link rel="Shortcut Icon" type="image/x-icon" href="/blog/favicon.ico"><link rel="apple-touch-icon" href="/blog/apple-touch-icon.png"><link rel="apple-touch-icon-precomposed" href="/blog/apple-touch-icon.png"><script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create','G-95VDNDSZFV','auto');ga('send','pageview');
</script><script type="text/javascript" src="//cdn.jsdelivr.net/npm/clipboard/dist/clipboard.min.js"></script><script type="text/javascript" src="//cdn.jsdelivr.net/gh/codeseven/toastr/build/toastr.min.js"></script><link rel="stylesheet" href="//cdn.jsdelivr.net/gh/codeseven/toastr/build/toastr.min.css"><meta name="generator" content="Hexo 6.0.0"></head><body><div class="body_container"><div id="header"><div class="site-name"><h1 class="hidden">Node require 执行细节</h1><a id="logo" href="/blog/.">imbAnt's blog</a><p class="description"></p></div><div id="nav-menu"><a class="current" href="/blog/."><i class="fa fa-home"> 首页</i></a><a href="/blog/archives/"><i class="fa fa-archive"> 归档</i></a><a href="/blog/about/"><i class="fa fa-user"> 关于</i></a></div></div><div class="pure-g" id="layout"><div class="pure-u-1 pure-u-md-3-4"><div class="content_container"><div class="post"><h1 class="post-title">Node require 执行细节</h1><div class="post-meta">2019-08-09</div><div class="post-content"><h2 id="当-Node-遇到-require-X-时,按如下顺序处理"><a href="#当-Node-遇到-require-X-时,按如下顺序处理" class="headerlink" title="当 Node 遇到 require(X) 时,按如下顺序处理"></a>当 Node 遇到 require(X) 时,按如下顺序处理</h2><ol>
<li>X 为内置模块(比如 require(‘http’))<br>直接执行</li>
<li>X 以 ./ 或 / 或 ../ 开头</li>
</ol>
<ul>
<li>根据 X 所在的父模块,补全绝对路径</li>
<li>将 X 视为文件,依次查找如下的文件,找到就返回该文件。<ul>
<li>X</li>
<li>X.js (这样就可以在 require 中只写 js 文件的名字,不写后缀名了)</li>
<li>X.json</li>
<li>X.node</li>
</ul>
</li>
<li>将 X 视为目录,依次查找如下文件,找到就返回该文件。<ul>
<li>X/package.json(main 字段)</li>
<li>X/index.js</li>
<li>X/index.json</li>
<li>X/index.node</li>
</ul>
</li>
</ul>
<ol start="3">
<li>如果 X 不带路径<ul>
<li>根据 X 所在的父模块,确定 X 可能的安装路径</li>
<li>依次在每个目录中,将 X 当成文件名或目录名加载</li>
</ul>
</li>
<li>抛出 “not found”</li>
</ol>
</div><div class="tags"><a href="/blog/tags/Node/"><i class="fa fa-tag"></i>Node</a></div><div class="post-nav"><a class="pre" href="/blog/2019/08/11/%E6%8C%81%E7%BB%AD%E9%9B%86%E6%88%90/">持续集成</a><a class="next" href="/blog/1970/01/01/%E6%9A%82%E5%AD%98%E5%8C%BA/">暂存区</a></div><div class="giscus"></div><script src="https://giscus.app/client.js" data-repo="imbant/blog" data-repo-id="MDEwOlJlcG9zaXRvcnkyNDkzOTc0NDM=" data-category="General" data-category-id="DIC_kwDODt2Aw84Ch79K" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="preferred_color_scheme" data-lang="zh-CN" crossorigin="anonymous" async></script></div></div></div><div class="pure-u-1-4 hidden_mid_and_down"><div id="sidebar"><div class="widget"><form class="search-form" action="//www.google.com/search" method="get" accept-charset="utf-8" target="_blank"><input type="text" name="q" maxlength="20" placeholder="Search"/><input type="hidden" name="sitesearch" value="https://imbant.github.io/blog"/></form></div></div></div><div class="pure-u-1 pure-u-md-3-4"><div id="footer"><span id="footer-copyright">Copyright © </span><a href="/blog/." rel="nofollow">imbAnt's blog.</a> Powered by<a rel="nofollow" target="_blank" href="https://hexo.io"> Hexo.</a><a rel="nofollow" target="_blank" href="https://github.com/tufu9441/maupassant-hexo"> Theme</a> by<a rel="nofollow" target="_blank" href="https://github.com/pagecho"> Cho.</a><script>const tag = document.getElementById('footer-copyright');const year = new Date().getFullYear();tag.innerText += year + ' ';</script></div></div></div><a class="show" id="rocket" href="#top"></a><script type="text/javascript" src="/blog/js/totop.js?v=1.0.0" async></script><script type="text/javascript" src="//cdn.jsdelivr.net/gh/fancyapps/fancybox/dist/jquery.fancybox.min.js" async></script><script type="text/javascript" src="/blog/js/fancybox.js?v=1.0.0" async></script><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/gh/fancyapps/fancybox/dist/jquery.fancybox.min.css"><script type="text/javascript" src="/blog/js/codeblock-resizer.js?v=1.0.0"></script><script type="text/javascript" src="/blog/js/smartresize.js?v=1.0.0"></script><script type="text/javascript" src="/blog/js/gifFavIcon.js"></script></div></body></html>
12 changes: 0 additions & 12 deletions 2019/08/11/持续集成/index.html
Original file line number Diff line number Diff line change
@@ -1,12 +0,0 @@
<!DOCTYPE html><html lang="zh-CN"><head><meta name="google-site-verification" content="_s8zp9HC5xK3I7RCh_8RJrSUgYtyNgc09bZvTV11nFI"><meta http-equiv="content-type" content="text/html; charset=utf-8"><meta content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0" name="viewport"><meta content="yes" name="apple-mobile-web-app-capable"><meta content="black-translucent" name="apple-mobile-web-app-status-bar-style"><meta content="telephone=no" name="format-detection"><meta name="description" content="imbant 前端工程师技术博客"><meta name="keywords" content="前端,imbant,技术博客,浏览器,Electron,React,Vue,Node,Webpack,Vite,Chrome"><title>持续集成 | imbAnt's blog</title><link rel="stylesheet" type="text/css" href="/blog/css/style.css?v=1.0.0"><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/purecss/build/pure-min.min.css"><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/npm/purecss/build/grids-responsive-min.css"><link rel="stylesheet" href="//cdn.jsdelivr.net/npm/font-awesome@4.7.0/css/font-awesome.min.css"><script type="text/javascript" src="//cdn.jsdelivr.net/npm/jquery/dist/jquery.min.js"></script><link rel="icon" mask="" sizes="any"><link rel="Shortcut Icon" type="image/x-icon" href="/blog/favicon.ico"><link rel="apple-touch-icon" href="/blog/apple-touch-icon.png"><link rel="apple-touch-icon-precomposed" href="/blog/apple-touch-icon.png"><script>(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create','G-95VDNDSZFV','auto');ga('send','pageview');
</script><script type="text/javascript" src="//cdn.jsdelivr.net/npm/clipboard/dist/clipboard.min.js"></script><script type="text/javascript" src="//cdn.jsdelivr.net/gh/codeseven/toastr/build/toastr.min.js"></script><link rel="stylesheet" href="//cdn.jsdelivr.net/gh/codeseven/toastr/build/toastr.min.css"><meta name="generator" content="Hexo 6.0.0"></head><body><div class="body_container"><div id="header"><div class="site-name"><h1 class="hidden">持续集成</h1><a id="logo" href="/blog/.">imbAnt's blog</a><p class="description"></p></div><div id="nav-menu"><a class="current" href="/blog/."><i class="fa fa-home"> 首页</i></a><a href="/blog/archives/"><i class="fa fa-archive"> 归档</i></a><a href="/blog/about/"><i class="fa fa-user"> 关于</i></a></div></div><div class="pure-g" id="layout"><div class="pure-u-1 pure-u-md-3-4"><div class="content_container"><div class="post"><h1 class="post-title">持续集成</h1><div class="post-meta">2019-08-11</div><div class="post-content"><h2 id="持续集成-Continuous-Integration-CI"><a href="#持续集成-Continuous-Integration-CI" class="headerlink" title="持续集成 Continuous Integration - CI"></a>持续集成 Continuous Integration - CI</h2><p><a target="_blank" rel="noopener" href="http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html">http://www.ruanyifeng.com/blog/2015/09/continuous-integration.html</a></p>
<p>概念:一天多次地将代码合并到主干<br>优点:快速发现错误;防止分支大幅度偏离主干</p>
<h2 id="持续交付-Continuous-Delivery"><a href="#持续交付-Continuous-Delivery" class="headerlink" title="持续交付 Continuous Delivery"></a>持续交付 Continuous Delivery</h2><p>概念:频繁地将软件的最新版本提交给质量团队或用户,以供评审</p>
<h2 id="持续部署-Continuous-Deployment"><a href="#持续部署-Continuous-Deployment" class="headerlink" title="持续部署 Continuous Deployment"></a>持续部署 Continuous Deployment</h2><p>概念:持续交付后的下一步,在代码通过评审后,自动部署到生产环境</p>
<h2 id="整体流程"><a href="#整体流程" class="headerlink" title="整体流程"></a>整体流程</h2><p>提交——构建和测试——部署——回滚<br>提交:<br>开发者向仓库 commit 代码<br>构建:<br>将项目 build 起来,并且进行自动化单元测试和集成测试。这一步基本是通过代码仓库的 hook 实现的:只要有 commit 操作,就进行自动化测试<br>部署:<br>通过测试的代码就是一个可以直接部署的版本(artifact),将这个版本所有文件打包(字面意思的打包,打成压缩包 tar filename.tar *),发送到生产服务器(当然,也可以是开发服务器、测试服务器或者预发布服务器)。<br>生产服务器在本地环境解压这个压缩包,并将运行路径的符号链接指向解压路径,并重启应用。<br>回滚:<br>当前版本出了问题,就要回到上个版本的构建结果。最简单的做法是修改符号链接,让其指向上一个版本的目录。</p>
<h2 id="效果和优点:"><a href="#效果和优点:" class="headerlink" title="效果和优点:"></a>效果和优点:</h2><p>开发者本地(localhost:8080)开发完成后,在代码仓库提交代码,服务器自动部署项目,开发者只需等待部署完成就可以在目标服务器(dev.example.com)看到开发效果</p>
</div><div class="tags"><a href="/blog/tags/Devops/"><i class="fa fa-tag"></i>Devops</a></div><div class="post-nav"><a class="pre" href="/blog/2019/08/13/ES6-%E5%AF%B9%E8%B1%A1%E5%B1%9E%E6%80%A7%E7%9A%84%E7%AE%80%E5%86%99%E4%B8%8E%E8%A7%A3%E6%9E%84%E8%B5%8B%E5%80%BC/">ES6 对象属性的简写与解构赋值</a><a class="next" href="/blog/2019/08/09/Node-require-%E6%89%A7%E8%A1%8C%E7%BB%86%E8%8A%82/">Node require 执行细节</a></div><div class="giscus"></div><script src="https://giscus.app/client.js" data-repo="imbant/blog" data-repo-id="MDEwOlJlcG9zaXRvcnkyNDkzOTc0NDM=" data-category="General" data-category-id="DIC_kwDODt2Aw84Ch79K" data-mapping="pathname" data-strict="0" data-reactions-enabled="1" data-emit-metadata="0" data-input-position="bottom" data-theme="preferred_color_scheme" data-lang="zh-CN" crossorigin="anonymous" async></script></div></div></div><div class="pure-u-1-4 hidden_mid_and_down"><div id="sidebar"><div class="widget"><form class="search-form" action="//www.google.com/search" method="get" accept-charset="utf-8" target="_blank"><input type="text" name="q" maxlength="20" placeholder="Search"/><input type="hidden" name="sitesearch" value="https://imbant.github.io/blog"/></form></div></div></div><div class="pure-u-1 pure-u-md-3-4"><div id="footer"><span id="footer-copyright">Copyright © </span><a href="/blog/." rel="nofollow">imbAnt's blog.</a> Powered by<a rel="nofollow" target="_blank" href="https://hexo.io"> Hexo.</a><a rel="nofollow" target="_blank" href="https://github.com/tufu9441/maupassant-hexo"> Theme</a> by<a rel="nofollow" target="_blank" href="https://github.com/pagecho"> Cho.</a><script>const tag = document.getElementById('footer-copyright');const year = new Date().getFullYear();tag.innerText += year + ' ';</script></div></div></div><a class="show" id="rocket" href="#top"></a><script type="text/javascript" src="/blog/js/totop.js?v=1.0.0" async></script><script type="text/javascript" src="//cdn.jsdelivr.net/gh/fancyapps/fancybox/dist/jquery.fancybox.min.js" async></script><script type="text/javascript" src="/blog/js/fancybox.js?v=1.0.0" async></script><link rel="stylesheet" type="text/css" href="//cdn.jsdelivr.net/gh/fancyapps/fancybox/dist/jquery.fancybox.min.css"><script type="text/javascript" src="/blog/js/codeblock-resizer.js?v=1.0.0"></script><script type="text/javascript" src="/blog/js/smartresize.js?v=1.0.0"></script><script type="text/javascript" src="/blog/js/gifFavIcon.js"></script></div></body></html>
Loading

0 comments on commit 262ad2a

Please sign in to comment.