{
    "version": "https://jsonfeed.org/version/1",
    "title": "Notes & Drafts Blog",
    "home_page_url": "https://docs.pawgame.com/posts",
    "description": "Notes & Drafts Blog",
    "items": [
        {
            "id": "https://docs.pawgame.com/posts/brew-broken",
            "content_html": "<p>为了体验下 swiftUI，要下载最新的 XCode，下载最新的 XCode 需要更新最新的系统，更新完了以后今天发现 brew 跪了。\n报错提示如下：</p>\n<div class=\"language-bash codeBlockContainer_IPZf theme-code-block\" style=\"--prism-color:#9CDCFE;--prism-background-color:#1E1E1E\"><div class=\"codeBlockContent_t66D\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_e4nN thin-scrollbar\" style=\"color:#9CDCFE;background-color:#1E1E1E\"><code class=\"codeBlockLines_cPc_\"><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">Error:</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">  homebrew-core is a shallow clone.</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">To </span><span class=\"token variable\" style=\"color:rgb(156, 220, 254)\">`</span><span class=\"token variable\" style=\"color:rgb(156, 220, 254)\">brew update</span><span class=\"token variable\" style=\"color:rgb(156, 220, 254)\">`</span><span class=\"token plain\">, first run:</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">  </span><span class=\"token function\" style=\"color:rgb(220, 220, 170)\">git</span><span class=\"token plain\"> </span><span class=\"token parameter variable\" style=\"color:rgb(156, 220, 254)\">-C</span><span class=\"token plain\"> /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core fetch </span><span class=\"token parameter variable\" style=\"color:rgb(156, 220, 254)\">--unshallow</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">This </span><span class=\"token builtin class-name\" style=\"color:rgb(78, 201, 176)\">command</span><span class=\"token plain\"> may take a few minutes to run due to the large size of the repository.</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">This restriction has been made on GitHub</span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">'s request because updating shallow</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">clones is an extremely expensive operation due to the tree layout and traffic of</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">Homebrew/homebrew-core and Homebrew/homebrew-cask. We don'</span><span class=\"token plain\">t </span><span class=\"token keyword\" style=\"color:rgb(86, 156, 214)\">do</span><span class=\"token plain\"> this </span><span class=\"token keyword\" style=\"color:rgb(86, 156, 214)\">for</span><span class=\"token plain\"> you</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">automatically to avoid repeatedly performing an expensive unshallow operation </span><span class=\"token keyword\" style=\"color:rgb(86, 156, 214)\">in</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">CI systems </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">(</span><span class=\"token plain\">which should instead be fixed to not use shallow clones</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">)</span><span class=\"token plain\">. Sorry </span><span class=\"token keyword\" style=\"color:rgb(86, 156, 214)\">for</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">the inconvenience</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">!</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\" style=\"display:inline-block\"></span><br></div></code></pre></div></div>\n<p>不要相信它的提示，因为操作下来发现并不管用，后来搜了大概了解 brew 在本地是有两个项目文件夹，一个是 homebrew-core，一个是 homebrew-cask，这两个已经不可用，至于为啥不晓得，即便进入这俩的文件夹，进行 git fetch 和 git pull 升级到最新也无效。最后索性将这两个文件夹直接删掉，重新升级：</p>\n<div class=\"language-bash codeBlockContainer_IPZf theme-code-block\" style=\"--prism-color:#9CDCFE;--prism-background-color:#1E1E1E\"><div class=\"codeBlockContent_t66D\"><pre tabindex=\"0\" class=\"prism-code language-bash codeBlock_e4nN thin-scrollbar\" style=\"color:#9CDCFE;background-color:#1E1E1E\"><code class=\"codeBlockLines_cPc_\"><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token builtin class-name\" style=\"color:rgb(78, 201, 176)\">cd</span><span class=\"token plain\"> /usr/local/Homebrew/Library/Taps/homebrew</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\"></span><span class=\"token function\" style=\"color:rgb(220, 220, 170)\">rm</span><span class=\"token plain\"> </span><span class=\"token parameter variable\" style=\"color:rgb(156, 220, 254)\">-rf</span><span class=\"token plain\"> homebrew-core homebrew-cask</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">brew upgrade</span><br></div></code></pre></div></div>",
            "url": "https://docs.pawgame.com/posts/brew-broken",
            "title": "brew 坏掉了",
            "summary": "为了体验下 swiftUI，要下载最新的 XCode，下载最新的 XCode 需要更新最新的系统，更新完了以后今天发现 brew 跪了。",
            "date_modified": "2022-04-14T00:00:00.000Z",
            "tags": [
                "brew"
            ]
        },
        {
            "id": "https://docs.pawgame.com/posts/npm-lib-desgin",
            "content_html": "<p>设计一个 npm 包经常要考虑要不要分包，比如早期将项目中的各个包分开：reports、interface、log、request 等，各司其职。后来由于业务互相耦合的很厉害，所以又将这些包合并成一个包，现在就将 reports、interface、request 合并成为了一个 interface 包。</p>\n<p>在整理 laya 库的时候发现早期一直想分离一个@pawgame 的库，给纯粹的 es6 来用，不捆绑任何框架，不管是 Laya 还是 Cocos 还是 Egret 还是 React 都可以用。后来发现不太现实，因为为了兼容他们反而写了一堆冗余代码，而如果都整合在一起又导致各个项目不通用。</p>\n<p>所以我想要不要把@pawgame 的包拆分足够细致，如果没有必要不再更新，而对于单独的项目来说写一个对应的 core 包。\n大概结构如下：</p>\n<div class=\"language-json codeBlockContainer_IPZf theme-code-block\" style=\"--prism-color:#9CDCFE;--prism-background-color:#1E1E1E\"><div class=\"codeBlockTitle_sEeM\">laya工程</div><div class=\"codeBlockContent_t66D\"><pre tabindex=\"0\" class=\"prism-code language-json codeBlock_e4nN thin-scrollbar\" style=\"color:#9CDCFE;background-color:#1E1E1E\"><code class=\"codeBlockLines_cPc_\"><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">@pawgame/laya-core</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">├── @pawgame/ts-mvc</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">├── @pawgame/ts-request</span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">├── @pawgame/ts-utils</span><br></div></code></pre></div></div>\n<p>其中 laya-core 是针对 laya 的核心库，依赖并 laya 本身的类库进行扩展。ts-mvc 纯 ts 代码的 mvc 模式代码，在 laya-core 中会直接饮用 ts-mvc 代码。ts-request 是 ts 的网络请求库，ts-utils 是 Object 的工具库。</p>\n<h2 class=\"anchor anchorTargetStickyNavbar_TEZl\" id=\"packagejson-设置\">package.json 设置<a href=\"https://docs.pawgame.com/posts/npm-lib-desgin#packagejson-%E8%AE%BE%E7%BD%AE\" class=\"hash-link\" aria-label=\"Direct link to package.json 设置\" title=\"Direct link to package.json 设置\" translate=\"no\">​</a></h2>\n<ol>\n<li class=\"\">要指定 files 目录，否则会将项目整体作为包体。</li>\n<li class=\"\">指定 type=\"module\"，让使用方来决定是否 babel 转译。</li>\n<li class=\"\">指定 main 文件和 types 对应的 d.ts 文件。</li>\n</ol>\n<p>参考：</p>\n<div class=\"language-json codeBlockContainer_IPZf theme-code-block\" style=\"--prism-color:#9CDCFE;--prism-background-color:#1E1E1E\"><div class=\"codeBlockTitle_sEeM\">package.json</div><div class=\"codeBlockContent_t66D\"><pre tabindex=\"0\" class=\"prism-code language-json codeBlock_e4nN thin-scrollbar\" style=\"color:#9CDCFE;background-color:#1E1E1E\"><code class=\"codeBlockLines_cPc_\"><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"name\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"@pawgame/laya-game-sdk\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"version\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"0.0.4\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"description\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"type\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"module\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"main\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"lib/index.js\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"types\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"lib/index.d.ts\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"files\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">[</span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"lib/\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">]</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"scripts\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"build\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"rm -rf lib &amp;&amp; tsc\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"test\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"echo \\\"no test specified\\\"\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"lint\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"eslint src/ --ext .js,.jsx,.ts,.tsx\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">}</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"repository\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"type\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"git\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"url\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"git+https://github.com/daichangxin/js.laya-game-sdk.git\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">}</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"author\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"daichangxin\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"license\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"MIT\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"bugs\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"url\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"https://github.com/daichangxin/js.laya-game-sdk/issues\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">}</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"homepage\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"https://github.com/daichangxin/js.laya-game-sdk#readme\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"devDependencies\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"@shm-open/eslint-config-bundle\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"^1.7.5\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"typescript\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"^4.5.4\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">}</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"dependencies\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"@pawgame/game-library\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"^2.1.0\"</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">}</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">}</span><br></div></code></pre></div></div>\n<h2 class=\"anchor anchorTargetStickyNavbar_TEZl\" id=\"类库的-tsconfig-参考\">类库的 tsconfig 参考：<a href=\"https://docs.pawgame.com/posts/npm-lib-desgin#%E7%B1%BB%E5%BA%93%E7%9A%84-tsconfig-%E5%8F%82%E8%80%83\" class=\"hash-link\" aria-label=\"Direct link to 类库的 tsconfig 参考：\" title=\"Direct link to 类库的 tsconfig 参考：\" translate=\"no\">​</a></h2>\n<div class=\"language-json codeBlockContainer_IPZf theme-code-block\" style=\"--prism-color:#9CDCFE;--prism-background-color:#1E1E1E\"><div class=\"codeBlockTitle_sEeM\">tsconfig.json</div><div class=\"codeBlockContent_t66D\"><pre tabindex=\"0\" class=\"prism-code language-json codeBlock_e4nN thin-scrollbar\" style=\"color:#9CDCFE;background-color:#1E1E1E\"><code class=\"codeBlockLines_cPc_\"><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"compilerOptions\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">{</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"moduleResolution\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"node\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"target\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"es6\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"declaration\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token boolean\">true</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line theme-code-block-highlighted-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"outDir\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"lib\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"skipLibCheck\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token boolean\">true</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"removeComments\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token boolean\">false</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">        </span><span class=\"token property\">\"lib\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">[</span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"ESNext\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"DOM\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">]</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">}</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\">    </span><span class=\"token property\">\"include\"</span><span class=\"token operator\" style=\"color:rgb(212, 212, 212)\">:</span><span class=\"token plain\"> </span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">[</span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"src\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">,</span><span class=\"token plain\"> </span><span class=\"token string\" style=\"color:rgb(206, 145, 120)\">\"libs\"</span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">]</span><span class=\"token plain\"></span><br></div><div class=\"token-line\" style=\"color:#9CDCFE\"><span class=\"token plain\"></span><span class=\"token punctuation\" style=\"color:rgb(212, 212, 212)\">}</span><br></div></code></pre></div></div>",
            "url": "https://docs.pawgame.com/posts/npm-lib-desgin",
            "title": "npm包的设计",
            "summary": "设计一个 npm 包经常要考虑要不要分包，比如早期将项目中的各个包分开：reports、interface、log、request 等，各司其职。后来由于业务互相耦合的很厉害，所以又将这些包合并成一个包，现在就将 reports、interface、request 合并成为了一个 interface 包。",
            "date_modified": "2021-12-25T00:00:00.000Z",
            "tags": [
                "nodejs"
            ]
        },
        {
            "id": "https://docs.pawgame.com/posts/welcome",
            "content_html": "<p>之前尝试使用 Hexo 搭建了一个 blog，<a href=\"https://blog.pawgame.com/\" target=\"_blank\" rel=\"noopener noreferrer\" class=\"\">https://blog.pawgame.com</a>，断断续续写了一段时间。后来想在内容上做一些好玩的东西，比如特殊的字体效果、好玩的动画等都很困难。于是就使用 Next.js 搭建了一个，使用了好多插件，解决代码高亮，在线代码编辑，mdx 内容，读取 blog 列表，生成 site 等等。</p>\n<p>然而突然有一天发现所有我想要的 docusaurus 都有，不仅可以支持文档模式，还可以写 blog。完全就是一个资源整合站。\n于是就迁移了一些内容过来，并准备长期维护，主要放日常工作遇到的问题以及解决方法。</p>",
            "url": "https://docs.pawgame.com/posts/welcome",
            "title": "welcome",
            "summary": "之前尝试使用 Hexo 搭建了一个 blog，https://blog.pawgame.com，断断续续写了一段时间。后来想在内容上做一些好玩的东西，比如特殊的字体效果、好玩的动画等都很困难。于是就使用 Next.js 搭建了一个，使用了好多插件，解决代码高亮，在线代码编辑，mdx 内容，读取 blog 列表，生成 site 等等。",
            "date_modified": "2021-12-21T00:00:00.000Z",
            "tags": []
        }
    ]
}