<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:media="http://search.yahoo.com/mrss/">
  <channel>
    <title>VS Code｜林鼎淵 Dean Lin</title>
    <link>https://deanlin.net/tags/vs-code/</link>
    <image><url>https://deanlin.net/images/author_hu_aa256fc934e9a932.jpg</url><title>VS Code｜林鼎淵 Dean Lin</title><link>https://deanlin.net/tags/vs-code/</link><width>144</width><height>144</height></image>
    <description>林鼎淵（Dean Lin）的部落格：生成式 AI 企業內訓講師、外商資安公司軟體專家、7 本書作者。400 多篇文章用白話分享生成式 AI 實戰、Claude Code 與 Vibe Coding 教學、團隊合作與職場成長。</description>
    <generator>Hugo</generator>
    <language>zh-tw</language>
    <copyright>© 2020–2026 林鼎淵 Dean Lin</copyright>
    <lastBuildDate>Mon, 21 Jun 2021 17:52:13 +0800</lastBuildDate>
    <atom:link href="https://deanlin.net/tags/vs-code/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>使用 Visual Studio Live Share 來即時共同開發 — Pair programming</title>
      <link>https://deanlin.net/blog/202106/vscode-live-share-pair-programming/</link>
      <pubDate>Mon, 21 Jun 2021 17:52:13 +0800</pubDate>
      <guid>https://deanlin.net/blog/202106/vscode-live-share-pair-programming/</guid>
      <dc:creator>林鼎淵</dc:creator>
      <category>團隊合作</category>
      <description>在遠端工作後，我們使用 Teams、Skype、Google meet…</description>
      <media:content url="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-og_hu_bc7be76d4a153ac0.jpg" medium="image" type="image/jpeg" width="1200" height="675" />
      <content:encoded><![CDATA[<p>在遠端工作後，我們使用 Teams、Skype、Google meet 來完成日常的會議，但如果使用上述工具來討論專案中的程式碼並不方便，因為所有使用者都聚焦在同一個畫面上；但看到問題時只能用口頭表達：「去app資料架下面找出xxxController，第30行的程式邏輯有問題。」這樣的表達方式欠缺效率且容易帶有情緒；所以今天向大家介紹一款共同開發超棒的工具。</p>
<figure class="figure"><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-01.webp" width="1400" height="785" alt="圖片來源：Visual Studio官網" fetchpriority="high" decoding="async">
  <figcaption>圖片來源：<a href="https://visualstudio.microsoft.com/zh-hant/services/live-share/?fbclid=IwAR3B2oFFd4kuofFKVm5qh7r5T-QCdOXSSta87b87jBhGGTdob4Ztl3Gp6-U">Visual Studio官網</a></figcaption>
</figure>

<pre tabindex="0"><code>一、我們現在協作時遇到了哪些困境？
二、這個工具能給我們開發帶來什麼樣的幫助？
三、安裝套件＆登入使用者
四、使用方式
</code></pre><h2 id="一我們現在協作時遇到了哪些困境">一、我們現在協作時遇到了哪些困境？<a class="h-anchor" href="#%e4%b8%80%e6%88%91%e5%80%91%e7%8f%be%e5%9c%a8%e5%8d%94%e4%bd%9c%e6%99%82%e9%81%87%e5%88%b0%e4%ba%86%e5%93%aa%e4%ba%9b%e5%9b%b0%e5%a2%83" aria-label="這個段落的連結"></a></h2>
<ul>
<li>使用螢幕分享做 Debug 時，需要依靠大腦來做運算邏輯，想要看哪一支檔案與程式也要靠口述，非常不方便</li>
<li>有些程式（Teams），不只螢幕分享來能直接控制對方的電腦做操作，但同一時間只允許一人做操作</li>
<li>就算團隊使用 git 版控，你切到對方有 Bug 的 branch 時可能無法順利重現問題發生（很多套件版本及環境參數設定不同）</li>
<li>因為無法完全模擬對方程式運作環境導致 Debug 時困難重重</li>
</ul>
<h2 id="二這個工具能給我們開發帶來什麼樣的幫助">二、這個工具能給我們開發帶來什麼樣的幫助？<a class="h-anchor" href="#%e4%ba%8c%e9%80%99%e5%80%8b%e5%b7%a5%e5%85%b7%e8%83%bd%e7%b5%a6%e6%88%91%e5%80%91%e9%96%8b%e7%99%bc%e5%b8%b6%e4%be%86%e4%bb%80%e9%ba%bc%e6%a8%a3%e7%9a%84%e5%b9%ab%e5%8a%a9" aria-label="這個段落的連結"></a></h2>
<ul>
<li>對方能夠很清楚理解自己現在講述的程式在哪個檔案的哪個位置，不再雞同鴨講</li>
<li>雙方能自由瀏覽專案下的資料夾與程式，無需依靠口述</li>
<li>可以模擬對方的環境進行程式編譯，更清楚問題發生點</li>
<li>雙方的游標顏色不同，方便討論時不會產生誤會</li>
</ul>
<h2 id="三安裝套件登入使用者">三、安裝套件＆登入使用者<a class="h-anchor" href="#%e4%b8%89%e5%ae%89%e8%a3%9d%e5%a5%97%e4%bb%b6%e7%99%bb%e5%85%a5%e4%bd%bf%e7%94%a8%e8%80%85" aria-label="這個段落的連結"></a></h2>
<blockquote>
<p>下面的步驟及操作可能會隨著 VScode 改版而有所不同，僅供參考</p>
</blockquote>
<p><strong>SETP 1</strong>：在 VScode 的 EXTENSION 分頁搜尋「Live Share」，點擊「install」即可完成安裝</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-02.webp" width="1400" height="658" alt="三、安裝套件＆登入使用者（圖 2）" loading="lazy" decoding="async"></p>
<p><strong>SETP 2</strong>：安裝完後會在左下角多出「LIVE SHARE」的icon</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-03.webp" width="514" height="664" alt="三、安裝套件＆登入使用者（圖 3）" loading="lazy" decoding="async"></p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-04.webp" width="1296" height="862" alt="三、安裝套件＆登入使用者（圖 4）" loading="lazy" decoding="async"></p>
<p><strong>SETP 3</strong>：第一次按「Share」時，會要求你登入 GitHub 或是 Microsoft 的帳號</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-05.webp" width="1296" height="862" alt="三、安裝套件＆登入使用者（圖 5）" loading="lazy" decoding="async"></p>
<p><strong>SETP 4</strong>：這裡我選擇登入Github，基本上就是一路按接受授權的過程</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-06.webp" width="1400" height="573" alt="三、安裝套件＆登入使用者（圖 6）" loading="lazy" decoding="async"></p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-07.webp" width="1400" height="1429" alt="三、安裝套件＆登入使用者（圖 7）" loading="lazy" decoding="async"></p>
<p><strong>SETP 5</strong>：註冊成功後，你就會看到以下畫面</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-08.webp" width="1300" height="668" alt="三、安裝套件＆登入使用者（圖 8）" loading="lazy" decoding="async"></p>
<h2 id="四使用方式">四、使用方式<a class="h-anchor" href="#%e5%9b%9b%e4%bd%bf%e7%94%a8%e6%96%b9%e5%bc%8f" aria-label="這個段落的連結"></a></h2>
<blockquote>
<p>完成安裝＆登入的步驟後，下面提供本機模擬的操作方式</p>
</blockquote>
<h3 id="-自己跟自己的連線模擬操作">自己跟自己的連線，模擬操作<a class="h-anchor" href="#-%e8%87%aa%e5%b7%b1%e8%b7%9f%e8%87%aa%e5%b7%b1%e7%9a%84%e9%80%a3%e7%b7%9a%e6%a8%a1%e6%93%ac%e6%93%8d%e4%bd%9c" aria-label="這個段落的連結"></a></h3>
<p><strong>SETP 1</strong>：在本機用 VScode 開啟一個資料夾或是專案</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-09.webp" width="1286" height="856" alt="自己跟自己的連線，模擬操作（圖 9）" loading="lazy" decoding="async"></p>
<p><strong>SETP 2</strong>：點擊「Share」做分享，此時你會得到一組邀請連結</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-10.webp" width="945" height="856" alt="自己跟自己的連線，模擬操作（圖 10）" loading="lazy" decoding="async"></p>
<p><strong>SETP 3</strong>：此時開用「New Windows」開啟一個空的 VScode，點擊「Join」加入</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-11.webp" width="1020" height="761" alt="自己跟自己的連線，模擬操作（圖 11）" loading="lazy" decoding="async"></p>
<p><strong>SETP 4</strong>：加入後加入後便可以開始共同開發嚕</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-12.webp" width="1174" height="855" alt="自己跟自己的連線，模擬操作（圖 12）" loading="lazy" decoding="async"></p>
<p>當 Join 的人對檔案操作時，Share 的人可以看到他的操作</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-13.webp" width="1400" height="681" alt="自己跟自己的連線，模擬操作（圖 13）" loading="lazy" decoding="async"></p>
<h3 id="-了解-share-的人跟-join-的人正在操作的畫面">了解 Share 的人跟 Join 的人正在操作的畫面<a class="h-anchor" href="#-%e4%ba%86%e8%a7%a3-share-%e7%9a%84%e4%ba%ba%e8%b7%9f-join-%e7%9a%84%e4%ba%ba%e6%ad%a3%e5%9c%a8%e6%93%8d%e4%bd%9c%e7%9a%84%e7%95%ab%e9%9d%a2" aria-label="這個段落的連結"></a></h3>
<p>按下右上角的「圖釘」，就是「Follow Participant」觀看對方現在操作的檔案</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-14.webp" width="915" height="395" alt="了解 Share 的人跟 Join 的人正在操作的畫面（圖 14）" loading="lazy" decoding="async"></p>
<h3 id="-直接在對方的環境下執行程式了解問題">直接在對方的環境下執行程式了解問題<a class="h-anchor" href="#-%e7%9b%b4%e6%8e%a5%e5%9c%a8%e5%b0%8d%e6%96%b9%e7%9a%84%e7%92%b0%e5%a2%83%e4%b8%8b%e5%9f%b7%e8%a1%8c%e7%a8%8b%e5%bc%8f%e4%ba%86%e8%a7%a3%e5%95%8f%e9%a1%8c" aria-label="這個段落的連結"></a></h3>
<p>Join的人可以直接在終端機下指令，了解程式執行狀況</p>
<p><img src="https://deanlin.net/blog/202106/vscode-live-share-pair-programming/images/vscode-live-share-pair-programming-15.webp" width="1354" height="826" alt="直接在對方的環境下執行程式了解問題（圖 15）" loading="lazy" decoding="async"></p>
<hr>
<blockquote class="pullquote"><p>本篇文章只是很簡略地讓大家了解如何使用「Live Share」這款套件，更多的功能就讓大家<a href="https://visualstudio.microsoft.com/zh-hant/services/live-share/?fbclid=IwAR3B2oFFd4kuofFKVm5qh7r5T-QCdOXSSta87b87jBhGGTdob4Ztl3Gp6-U">直接去官網</a>了解吧！</p>
</blockquote>
]]></content:encoded>
    </item>
    <item>
      <title>工程師的開發環境大補帖：Node.js、NVM、git、yarn、VSCode</title>
      <link>https://deanlin.net/blog/202101/developer-environment-setup/</link>
      <pubDate>Fri, 15 Jan 2021 11:21:18 +0800</pubDate>
      <guid>https://deanlin.net/blog/202101/developer-environment-setup/</guid>
      <dc:creator>林鼎淵</dc:creator>
      <category>技術教學</category>
      <description>工欲善其事，必先利其器</description>
      <media:content url="https://deanlin.net/blog/202101/developer-environment-setup/images/developer-environment-setup-og_hu_47edff0bf094e58d.jpg" medium="image" type="image/jpeg" width="1200" height="675" />
      <content:encoded><![CDATA[<p><img src="https://deanlin.net/blog/202101/developer-environment-setup/images/developer-environment-setup-01.webp" width="1400" height="694" alt="工程師的開發環境大補帖：Node.js、NVM、git、yarn、VSCode（圖 1）" fetchpriority="high" decoding="async"></p>
<blockquote>
<p><em>工欲善其事，必先利其器</em></p>
</blockquote>
<h2 id="為什麼寫這篇文章">為什麼寫這篇文章？<a class="h-anchor" href="#%e7%82%ba%e4%bb%80%e9%ba%bc%e5%af%ab%e9%80%99%e7%af%87%e6%96%87%e7%ab%a0" aria-label="這個段落的連結"></a></h2>
<p>因為我自己在<code>剛接觸程式時最痛恨的就是環境設定</code><br>不知道是我跟電腦不合還是怎樣，每次我學新東西的時候總是在環境設定這個環節卡的不要不要的<br>為了避免讀者在之後實戰的文章中一邊看一邊心理罵:「<strong>為什麼我們程式一模一樣但我的就是會錯?</strong>」這樣的憾事發生，所以我決定詳細的說明這個專案所需安裝的一切環境，並附上我本機安裝的工具版本，讓大家在日後的文章中可以順利操作與學習</p>
<blockquote>
<p><em>你們實際操作時通常都有新的版本了，如果最新版本有問題可以切換到筆者的版本來操作</em></p>
</blockquote>
<h2 id="需要安裝哪些工具">需要安裝哪些工具<a class="h-anchor" href="#%e9%9c%80%e8%a6%81%e5%ae%89%e8%a3%9d%e5%93%aa%e4%ba%9b%e5%b7%a5%e5%85%b7" aria-label="這個段落的連結"></a></h2>
<blockquote>
<p><code>說明包含 windows/mac 兩個系統的設定</code></p>
</blockquote>
<ol>
<li><a href="https://deanlin.net/blog/202101/developer-environment-setup/#e634">Node.js</a></li>
<li><a href="https://deanlin.net/blog/202101/developer-environment-setup/#8082">NVM</a></li>
<li><a href="https://deanlin.net/blog/202101/developer-environment-setup/#6dcd">git</a></li>
<li><a href="https://deanlin.net/blog/202101/developer-environment-setup/#bf69">yarn</a></li>
<li><a href="https://deanlin.net/blog/202101/developer-environment-setup/#d582">VSCode</a></li>
</ol>
<h2 id="開發環境介紹--設定">開發環境介紹 &amp; 設定<a class="h-anchor" href="#%e9%96%8b%e7%99%bc%e7%92%b0%e5%a2%83%e4%bb%8b%e7%b4%b9--%e8%a8%ad%e5%ae%9a" aria-label="這個段落的連結"></a></h2>
<h2 class="h-nomark" id="1-nodejs-官網">1. Node.js <a href="https://nodejs.org/en/about/">官網</a><a class="h-anchor" href="#1-nodejs-%e5%ae%98%e7%b6%b2" aria-label="這個段落的連結"></a></h2>
<p><img src="https://deanlin.net/blog/202101/developer-environment-setup/images/developer-environment-setup-02.webp" width="119" height="73" alt="1. Node.js 官網（圖 2）" loading="lazy" decoding="async"></p>
<p>能夠在 server 端運行 JavaScript 的開放原始碼、跨平台 JavaScript 的執行環境。前端工程師的福音</p>
<blockquote>
<p><em>筆者安裝的版本：v16.19.1 (使用nvm安裝，後面會介紹)</em></p>
</blockquote>
<hr>
<h2 class="h-nomark" id="2-nvm-官網">2. nvm <a href="https://github.com/nvm-sh/nvm">官網</a><a class="h-anchor" href="#2-nvm-%e5%ae%98%e7%b6%b2" aria-label="這個段落的連結"></a></h2>
<p>由於 Node.js 更新速度是非常快的，而許多套件有 Node.js 版本的相依性，透過NVM你可以輕鬆切換 Node.js 版本來符合不同專案的使用環境</p>
<h3 id="-windows-安裝步驟">windows 安裝步驟<a class="h-anchor" href="#-windows-%e5%ae%89%e8%a3%9d%e6%ad%a5%e9%a9%9f" aria-label="這個段落的連結"></a></h3>
<ol>
<li>先進入<a href="https://github.com/coreybutler/nvm-windows/releases">windows下載頁面</a></li>
<li>選擇最新版本的下載 <strong>nvm-setup.zip</strong>(筆者版本為1.1.7，你看到這篇文章時可能有提供更新的版本)</li>
</ol>
<p><img src="https://deanlin.net/blog/202101/developer-environment-setup/images/developer-environment-setup-03.webp" width="1400" height="841" alt="windows 安裝步驟（圖 3）" loading="lazy" decoding="async"></p>
<p>3. 下載後一路瘋狂下一步即可</p>
<p>4. 安裝後開啟命令提示字元(CMD)</p>
<p>5. 在 CMD 輸入指令確認 nvm 是否安裝成功</p>
<p><img src="https://deanlin.net/blog/202101/developer-environment-setup/images/developer-environment-setup-04.webp" width="1200" height="591" alt="windows 安裝步驟（圖 4）" loading="lazy" decoding="async"></p>
<h3 id="-mac-安裝步驟">mac 安裝步驟<a class="h-anchor" href="#-mac-%e5%ae%89%e8%a3%9d%e6%ad%a5%e9%a9%9f" aria-label="這個段落的連結"></a></h3>
<ol>
<li>打開終端機(Terminal)，以下步驟皆在終端機操作</li>
<li>mac 建議先下載 Homebrew</li>
</ol>
<pre tabindex="0"><code>/bin/bash -c &#34;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)&#34;
</code></pre><p>3. 下載後安裝 nvm</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>brew install nvm
</span></span></code></pre></div><p>4. 在終端機輸入指令確認 nvm 是否安裝成功</p>
<p><img src="https://deanlin.net/blog/202101/developer-environment-setup/images/developer-environment-setup-05.webp" width="1400" height="553" alt="mac 安裝步驟（圖 5）" loading="lazy" decoding="async"></p>
<h3 id="-用-nvm-安裝-nodejs">用 NVM 安裝 node.js<a class="h-anchor" href="#-%e7%94%a8-nvm-%e5%ae%89%e8%a3%9d-nodejs" aria-label="這個段落的連結"></a></h3>
<ul>
<li><code>指令：nvm install [version]</code></li>
<li>請切記要安裝一個 Node.js 版本(請選用<a href="https://nodejs.org/en/">LTS版本</a>)，不然你寫的程式會沒有可以運行的環境</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nvm install 16.19.1
</span></span></code></pre></div><blockquote>
<p>筆者nvm安裝版本：0.39.3</p>
</blockquote>
<hr>
<h2 class="h-nomark" id="3-git-官網">3. git <a href="https://git-scm.com/">官網</a><a class="h-anchor" href="#3-git-%e5%ae%98%e7%b6%b2" aria-label="這個段落的連結"></a></h2>
<p><img src="https://deanlin.net/blog/202101/developer-environment-setup/images/developer-environment-setup-06.webp" width="200" height="84" alt="3. git 官網（圖 6）" loading="lazy" decoding="async"></p>
<p>這是對於程式版本控制的工具，透過他你可以輕鬆回到過去，並且在多人協作時也能有效管控<br><a href="https://git-scm.com/download/win">windows下載頁面</a>、<a href="https://git-scm.com/download/mac">mac下載頁面</a></p>
<blockquote>
<p><em>我有朋友使用 windows 怎麼樣都無法正常安裝 git，如果你也遇到了這個不幸，你還是有<a href="https://desktop.github.com/">Git桌面板</a>可以選擇的</em></p>
</blockquote>
<h3 id="常用指令">常用指令<a class="h-anchor" href="#%e5%b8%b8%e7%94%a8%e6%8c%87%e4%bb%a4" aria-label="這個段落的連結"></a></h3>
<ul>
<li>抓取遠端數據庫(僅確認有什麼更新，不合併)</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git fetch
</span></span></code></pre></div><ul>
<li>抓取遠端數據庫更新</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git pull
</span></span></code></pre></div><ul>
<li>更新遠端數據庫</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git push
</span></span></code></pre></div><blockquote>
<p><em>筆者windows git安裝版本：2.27.0.windows.1</em></p>
</blockquote>
<hr>
<h2 class="h-nomark" id="4-yarn">4. yarn<a class="h-anchor" href="#4-yarn" aria-label="這個段落的連結"></a></h2>
<p><img src="https://deanlin.net/blog/202101/developer-environment-setup/images/developer-environment-setup-07.webp" width="160" height="84" alt="4. yarn（圖 7）" loading="lazy" decoding="async"></p>
<p>這是專門安裝套件的軟體，站在巨人的肩膀上你才能看得更遠，妥善運用別人提供的套件，程式的路能走得更遠<br><a href="https://classic.yarnpkg.com/lang/en/">下載頁面</a></p>
<h3 id="常用指令-1">常用指令<a class="h-anchor" href="#%e5%b8%b8%e7%94%a8%e6%8c%87%e4%bb%a4-1" aria-label="這個段落的連結"></a></h3>
<ul>
<li>依據 package.json 安裝所有套件</li>
</ul>
<pre tabindex="0"><code>yarn
</code></pre><ul>
<li>安裝到 dependencies</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yarn add <span style="color:#ff7b72;font-weight:bold">[</span>package<span style="color:#ff7b72;font-weight:bold">]</span>
</span></span></code></pre></div><ul>
<li>安裝到 devDependencies</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yarn add <span style="color:#ff7b72;font-weight:bold">[</span>package<span style="color:#ff7b72;font-weight:bold">]</span> –save-dev
</span></span></code></pre></div><ul>
<li>全域安裝套件(使該套件可在電腦任何位置被呼叫)</li>
</ul>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yarn global add <span style="color:#ff7b72;font-weight:bold">[</span>package<span style="color:#ff7b72;font-weight:bold">]</span>
</span></span></code></pre></div><blockquote>
<p><em>筆者yarn安裝版本：1.19.2</em></p>
</blockquote>
<hr>
<h2 class="h-nomark" id="5-vscode-官網">5. VScode <a href="https://code.visualstudio.com/">官網</a><a class="h-anchor" href="#5-vscode-%e5%ae%98%e7%b6%b2" aria-label="這個段落的連結"></a></h2>
<p><img src="https://deanlin.net/blog/202101/developer-environment-setup/images/developer-environment-setup-08.webp" width="80" height="80" alt="5. VScode 官網（圖 8）" loading="lazy" decoding="async"></p>
<p>現在已經過了用記事本在打程式的年代了，透過 IDE(整合開發環境)可以大幅增加你撰寫程式的速度<br><a href="https://code.visualstudio.com/">VScode下載頁面</a></p>
]]></content:encoded>
    </item>
    <item>
      <title>【Day2】開發環境大補帖 - Node.js、NVM、git、yarn、VSCode</title>
      <link>https://deanlin.net/blog/202009/fb-ig-crawler-day-02/</link>
      <pubDate>Thu, 17 Sep 2020 08:45:35 +0800</pubDate>
      <guid>https://deanlin.net/blog/202009/fb-ig-crawler-day-02/</guid>
      <dc:creator>林鼎淵</dc:creator>
      <category>技術教學</category>
      <description>因為我自己在剛接觸程式時最痛恨的就是環境設定 不知道是我跟電腦不合還是怎樣，每次我學新東西的時候總是在環境設定這個環節卡的不要不要的 為了避免讀者在之後實戰的文章中一邊看一邊心理罵:「為什麼我們程式一模一樣但我的就是會錯?」這樣的憾事發生，所以我決定詳細的說明這個專案所需安裝的一…</description>
      <media:content url="https://deanlin.net/blog/202009/fb-ig-crawler-day-02/images/cover_hu_465e72a912eb2f9.jpg" medium="image" type="image/jpeg" width="1200" height="675" />
      <content:encoded><![CDATA[<blockquote>
<p>工欲善其事，必先利其器</p>
</blockquote>
<h2 id="為什麼寫這篇文章">為什麼寫這篇文章？<a class="h-anchor" href="#%e7%82%ba%e4%bb%80%e9%ba%bc%e5%af%ab%e9%80%99%e7%af%87%e6%96%87%e7%ab%a0" aria-label="這個段落的連結"></a></h2>
<p>因為我自己在<mark>剛接觸程式時最痛恨的就是環境設定</mark></p>
<p>不知道是我跟電腦不合還是怎樣，每次我學新東西的時候總是在環境設定這個環節卡的不要不要的</p>
<p>為了避免讀者在之後實戰的文章中一邊看一邊心理罵:「<strong>為什麼我們程式一模一樣但我的就是會錯?</strong>」這樣的憾事發生，所以我決定詳細的說明這個專案所需安裝的一切環境，並附上我本機安裝的工具版本，讓大家在日後的文章中可以順利操作與學習</p>
<blockquote>
<p>你們實際操作時通常都有新的版本了，如果最新版本有問題可以切換到筆者的版本來操作</p>
</blockquote>
<h2 id="今日目標">今日目標<a class="h-anchor" href="#%e4%bb%8a%e6%97%a5%e7%9b%ae%e6%a8%99" aria-label="這個段落的連結"></a></h2>
<ol>
<li>了解使用工具的重要性 &amp; 為什麼選擇他</li>
<li>完成開發前環境設定</li>
</ol>
<h2 id="使用什麼工具完成">使用什麼工具完成<a class="h-anchor" href="#%e4%bd%bf%e7%94%a8%e4%bb%80%e9%ba%bc%e5%b7%a5%e5%85%b7%e5%ae%8c%e6%88%90" aria-label="這個段落的連結"></a></h2>
<p>說到爬蟲，我想絕大多數的人第一個想到的一定是 python，python 是一個很好的語言，但很可惜我對他的鑽研不夠深入，如果這份外包<strong>使用一個自己不夠熟悉的語言來撰寫那是一個不負責任的行為</strong>，所以在這裡我選擇的語言是 javacscript</p>
<p>另外我會<strong>詳細說明前置環境的設定</strong>，如果每個人的環境設置都不一樣，那麼我文章的程式可能在許多電腦上都是無法執行的，所以<code>說明包含 windows/mac 兩個系統的設定</code>，讓你們了解到為什麼叫使用這些工具</p>
<ol>
<li>Node.js</li>
<li>NVM</li>
<li>git</li>
<li>yarn</li>
<li>VSCode</li>
</ol>
<h2 id="開發環境介紹--設定">開發環境介紹 &amp; 設定<a class="h-anchor" href="#%e9%96%8b%e7%99%bc%e7%92%b0%e5%a2%83%e4%bb%8b%e7%b4%b9--%e8%a8%ad%e5%ae%9a" aria-label="這個段落的連結"></a></h2>
<h2 class="h-nomark" id="1-nodejs-官網">1. Node.js <a href="https://nodejs.org/en/about/">官網</a><a class="h-anchor" href="#1-nodejs-%e5%ae%98%e7%b6%b2" aria-label="這個段落的連結"></a></h2>
<p><img src="https://deanlin.net/blog/202009/fb-ig-crawler-day-02/images/fb-ig-crawler-day-02-01.webp" width="119" height="73" alt="Imgur" fetchpriority="high" decoding="async"></p>
<p>能夠在 server 端運行 JavaScript 的開放原始碼、跨平台 JavaScript 的執行環境。前端工程師的福音</p>
<blockquote>
<p>筆者安裝的版本：v12.19.0</p>
</blockquote>
<hr>
<h2 class="h-nomark" id="2-nvm-官網">2. nvm <a href="https://github.com/nvm-sh/nvm">官網</a><a class="h-anchor" href="#2-nvm-%e5%ae%98%e7%b6%b2" aria-label="這個段落的連結"></a></h2>
<p>由於 Node.js 更新速度是非常快的，而許多套件有 Node.js 版本的相依性，透過NVM你可以輕鬆切換 Node.js 版本來符合不同專案的使用環境</p>
<ul>
<li>
<p><strong>windows 安裝步驟</strong></p>
<ol>
<li>
<p>先進入<a href="https://github.com/coreybutler/nvm-windows/releases">windows下載頁面</a></p>
</li>
<li>
<p>選擇最新版本的下載 <strong>nvm-setup.zip</strong>(筆者版本為1.1.7，你看到這篇文章時可能有提供更新的版本)</p>
<p><img src="https://deanlin.net/blog/202009/fb-ig-crawler-day-02/images/fb-ig-crawler-day-02-02.webp" width="1400" height="841" alt="Imgur" loading="lazy" decoding="async"></p>
</li>
<li>
<p>下載後一路瘋狂下一步即可</p>
</li>
<li>
<p>安裝後開啟命令提示字元(CMD)</p>
</li>
<li>
<p>在 CMD 輸入指令確認 nvm 是否安裝成功</p>
<pre tabindex="0"><code>nvm
</code></pre><blockquote>
<p><img src="https://deanlin.net/blog/202009/fb-ig-crawler-day-02/images/fb-ig-crawler-day-02-03.webp" width="1200" height="591" alt="Imgur" loading="lazy" decoding="async"></p>
</blockquote>
</li>
</ol>
</li>
<li>
<p><strong>mac 安裝步驟</strong></p>
<ol>
<li>
<p>打開終端機(Terminal)，以下步驟皆在終端機操作</p>
</li>
<li>
<p>mac 建議先下載 Homebrew</p>
<pre tabindex="0"><code>/bin/bash -c &#34;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)&#34;
</code></pre></li>
<li>
<p>下載後安裝 nvm</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>brew install nvm
</span></span></code></pre></div></li>
<li>
<p>確認 nvm 是否安裝成功</p>
<pre tabindex="0"><code>nvm
</code></pre><blockquote>
<p><img src="https://deanlin.net/blog/202009/fb-ig-crawler-day-02/images/fb-ig-crawler-day-02-04.webp" width="1400" height="553" alt="Imgur" loading="lazy" decoding="async"></p>
</blockquote>
</li>
</ol>
</li>
<li>
<p><strong>常用指令</strong></p>
<ul>
<li>
<p>安裝特定 Node.js 版本</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nvm install <span style="color:#ff7b72;font-weight:bold">[</span>version<span style="color:#ff7b72;font-weight:bold">]</span>
</span></span></code></pre></div><p>請切記要安裝一個 Node.js 版本(請選用<a href="https://nodejs.org/en/">LTS版本</a>)，不然你寫的程式會沒有可以運行的環境</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nvm install 12.19.0
</span></span></code></pre></div></li>
<li>
<p>切換 Node.js 版本</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nvm use <span style="color:#ff7b72;font-weight:bold">[</span>version<span style="color:#ff7b72;font-weight:bold">]</span>
</span></span></code></pre></div></li>
<li>
<p>列出本機(local)已經安裝好的 Node.js 版本</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nvm list
</span></span></code></pre></div></li>
<li>
<p>顯示當下 Node.js 版本</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>nvm current
</span></span></code></pre></div></li>
</ul>
<blockquote>
<p>筆者安裝版本：1.1.7</p>
</blockquote>
</li>
</ul>
<hr>
<h2 class="h-nomark" id="3-git-官網">3. git <a href="https://git-scm.com/">官網</a><a class="h-anchor" href="#3-git-%e5%ae%98%e7%b6%b2" aria-label="這個段落的連結"></a></h2>
<p><img src="https://deanlin.net/blog/202009/fb-ig-crawler-day-02/images/fb-ig-crawler-day-02-05.webp" width="200" height="84" alt="Imgur" loading="lazy" decoding="async"></p>
<p>這是對於程式版本控制的工具，透過他你可以輕鬆回到過去，並且在多人協作時也能有效管控</p>
<p><a href="https://git-scm.com/download/win">windows下載頁面</a>、<a href="https://git-scm.com/download/mac">mac下載頁面</a></p>
<blockquote>
<p>我有朋友使用 windows 怎麼樣都無法正常安裝 git，如果你也遇到了這個不幸，你還是有<a href="https://desktop.github.com/">Git桌面板</a>可以選擇的</p>
</blockquote>
<h3 id="常用指令">常用指令<a class="h-anchor" href="#%e5%b8%b8%e7%94%a8%e6%8c%87%e4%bb%a4" aria-label="這個段落的連結"></a></h3>
<ul>
<li>
<p>抓取遠端數據庫(僅確認有什麼更新，不合併)</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git fetch
</span></span></code></pre></div></li>
<li>
<p>抓取遠端數據庫更新</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git pull
</span></span></code></pre></div></li>
<li>
<p>更新遠端數據庫</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>git push
</span></span></code></pre></div></li>
</ul>
<blockquote>
<p>筆者windows安裝版本：2.27.0.windows.1</p>
</blockquote>
<hr>
<h2 class="h-nomark" id="4-yarn-官網">4. yarn <a href="https://classic.yarnpkg.com/en/">官網</a><a class="h-anchor" href="#4-yarn-%e5%ae%98%e7%b6%b2" aria-label="這個段落的連結"></a></h2>
<p><img src="https://deanlin.net/blog/202009/fb-ig-crawler-day-02/images/fb-ig-crawler-day-02-06.webp" width="160" height="84" alt="Imgur" loading="lazy" decoding="async"></p>
<p>這是專門安裝套件的軟體，站在巨人的肩膀上你才能看得更遠，妥善運用別人提供的套件，程式的路能走得更遠</p>
<p><a href="https://classic.yarnpkg.com/en/docs/install#windows-stable">windows下載頁面</a>、<a href="https://classic.yarnpkg.com/en/docs/install#mac-stable">mac下載頁面</a></p>
<h3 id="常用指令-1">常用指令<a class="h-anchor" href="#%e5%b8%b8%e7%94%a8%e6%8c%87%e4%bb%a4-1" aria-label="這個段落的連結"></a></h3>
<ul>
<li>
<p>依據 package.json 安裝所有套件</p>
<pre tabindex="0"><code>yarn
</code></pre></li>
<li>
<p>安裝到 dependencies</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yarn add <span style="color:#ff7b72;font-weight:bold">[</span>package<span style="color:#ff7b72;font-weight:bold">]</span>
</span></span></code></pre></div></li>
<li>
<p>安裝到 devDependencies</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yarn add <span style="color:#ff7b72;font-weight:bold">[</span>package<span style="color:#ff7b72;font-weight:bold">]</span> –save-dev
</span></span></code></pre></div></li>
<li>
<p>全域安裝套件(使該套件可在電腦任何位置被呼叫)</p>
<div class="highlight"><pre tabindex="0" style="color:#e6edf3;background-color:#0d1117;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span>yarn global add <span style="color:#ff7b72;font-weight:bold">[</span>package<span style="color:#ff7b72;font-weight:bold">]</span>
</span></span></code></pre></div></li>
</ul>
<blockquote>
<p>筆者安裝版本：1.19.2</p>
</blockquote>
<hr>
<h2 class="h-nomark" id="5-vscode-官網">5. VScode <a href="https://code.visualstudio.com/">官網</a><a class="h-anchor" href="#5-vscode-%e5%ae%98%e7%b6%b2" aria-label="這個段落的連結"></a></h2>
<p><img src="https://deanlin.net/blog/202009/fb-ig-crawler-day-02/images/fb-ig-crawler-day-02-07.webp" width="80" height="80" alt="Imgur" loading="lazy" decoding="async"></p>
<p>現在已經過了用記事本在打程式的年代了，透過 IDE(整合開發環境)可以大幅增加你撰寫程式的速度</p>
<p><a href="https://code.visualstudio.com/">VScode下載頁面</a></p>
<h3 id="優點">優點<a class="h-anchor" href="#%e5%84%aa%e9%bb%9e" aria-label="這個段落的連結"></a></h3>
<ol>
<li>適合新手：不需在終端機(Terminal)安裝及設定各種前置作業，能節省建立開發環境的成本，並加速對開發環境的了解。</li>
<li>執行程式：可以在 IDE 內直接執行一段程式碼，不需離開編輯器。</li>
<li>程式碼高亮：將原始碼以不同顏色顯現，讓我們閱讀更方便。</li>
<li>程式碼自動格式化：當輸入 if 或 while 時，他會自動縮排。</li>
<li>版本控制方便：git add、git commit 有 GUI 可以操作，並且有 work tree 讓你比對自己更改了哪些地方</li>
<li>功能擴充方便：能透過 Extentions 來安裝所需要的擴充的套件</li>
</ol>
<h3 id="常用快捷鍵">常用快捷鍵<a class="h-anchor" href="#%e5%b8%b8%e7%94%a8%e5%bf%ab%e6%8d%b7%e9%8d%b5" aria-label="這個段落的連結"></a></h3>
<blockquote>
<p>以下為 mac 快捷鍵，windows 按鍵請自行轉換：cmd = ctrl, option = alt</p>
</blockquote>
<ul>
<li>區塊註解 cmd + k + c</li>
<li>區塊取消註解 cmd + k + u</li>
<li>區塊縮退 cmd + [</li>
<li>區塊縮進 cmd + ]</li>
<li>自動整理程式碼 option + shift + f</li>
</ul>
<p>今天對於專案的前置環境說明到這裡，如果環境設定上有什麼問題的話實屬正常，畢竟每個電腦的環境都有些許不同，可以先用 google 查詢看看喔～進入工程師的世界後<a href="http://stackoverflow.com/">stackoverflow</a>會是你最好的朋友</p>
<hr>
<blockquote>
<p><strong>筆者碎碎念</strong></p>
<p>在文章的最後分享一個心態，無論是面對工作還是外包都一樣</p>
<p>在面試工作或是談外包時要先衡量一下自己的實力</p>
<p>如果你即將要面對的工作(外包)已經遠遠超過了你的能力範圍</p>
<p>強烈建議你拒絕這個機會，不要把工作(外包)當成是一個給你練習基礎的地方</p>
<p>你的同事跟業主會恨你的</p>
<p>尤其是外包，如果你的基礎不穩，運氣好你可能會做出一個貌似可以用的專案</p>
<p>但實際上這個專案充滿著你所不知道的漏洞</p>
<p>這塊我想只有實際在業界磨練過一段時間才能比較感同身受</p>
</blockquote>
<h3 id="參考資源">參考資源<a class="h-anchor" href="#%e5%8f%83%e8%80%83%e8%b3%87%e6%ba%90" aria-label="這個段落的連結"></a></h3>
<ol>
<li><a href="https://ithelp.ithome.com.tw/articles/10217858">nvm：快速安裝、切換不同版本的 Node.js</a></li>
<li><a href="https://backlog.com/git-tutorial/tw/intro/intro1_1.html">連猴子都懂的Git入門指南</a></li>
<li><a href="https://hsiangfeng.github.io/nodejs/20200107/3738078915/">Windows 10 安裝並使用 nvm 切換 NodeJS 版本</a></li>
<li><a href="https://docs.f5ezcode.in/cs-basic/di-ba-zhang-gong-cheng-de-gong-ju/8.1-zheng-he-jing-ide">一應俱全的整合開發環境IDE</a></li>
<li><a href="https://ithelp.ithome.com.tw/articles/10191745">用Yarn取代npm加速開發</a></li>
</ol>
<hr>
<blockquote>
<p><img src="https://deanlin.net/blog/202009/fb-ig-crawler-day-02/images/fb-ig-crawler-day-02-08.webp" width="1024" height="233" alt="參考資源（圖 8）" loading="lazy" decoding="async"></p>
<p><strong>在許多人的幫助下，本系列文章已出版成書，並添加了新的篇章與細節補充：</strong></p>
<ul>
<li>加入更多實務經驗，用完整的開發流程讓讀者了解專案每個階段要注意的事項</li>
<li>將爬蟲的步驟與技巧做更詳細的說明，讓讀者可以輕鬆入門</li>
<li>調整專案架構
<ul>
<li>優化爬蟲程式，以更廣的視角來擷取網頁資訊</li>
<li>增加資料驗證、錯誤通知等功能，讓爬蟲執行遇到問題時可以第一時間通知使用者</li>
<li>排程部分改用 node-schedule &amp; pm2 的組合，讓讀者可以輕鬆管理專案程序並獲得更精確的 log 資訊</li>
</ul>
</li>
</ul>
<p><strong>有興趣的朋友可以到天瓏書局選購，感謝大家的支持。</strong></p>
<p><strong>購書連結</strong>：<a href="https://www.tenlong.com.tw/products/9789864348008">https://www.tenlong.com.tw/products/9789864348008</a></p>
</blockquote>
]]></content:encoded>
    </item>
  </channel>
</rss>
