<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Khánh Hoàng (Marcus)</title>
    <description>The latest articles on DEV Community by Khánh Hoàng (Marcus) (@marcus_hoang).</description>
    <link>https://dev.to/marcus_hoang</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F293591%2F7498df2d-7bca-4bf5-a52e-30375ffe293b.jpeg</url>
      <title>DEV Community: Khánh Hoàng (Marcus)</title>
      <link>https://dev.to/marcus_hoang</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/marcus_hoang"/>
    <language>en</language>
    <item>
      <title>Part 2: Installing TypeScript and Setting Up Development</title>
      <dc:creator>Khánh Hoàng (Marcus)</dc:creator>
      <pubDate>Mon, 26 Jul 2021 08:36:06 +0000</pubDate>
      <link>https://dev.to/marcus_hoang/part-2-installing-typescript-and-setting-up-development-m1l</link>
      <guid>https://dev.to/marcus_hoang/part-2-installing-typescript-and-setting-up-development-m1l</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hi! I'm Marcus.&lt;br&gt;
This is my 2nd article in my Front End series.&lt;br&gt;
Each article will be written to read in 5 mins per purpose itself. I'll make a video for more understanding if possible.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table of contents:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://dev.to/marcus_hoang/part-1-setup-snowpack-4876"&gt;Part 1: Setup Snowpack&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Part 2: Installing TypeScript and Setting Up Development&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Today I'll guide you on Installing TypeScript and Setting Up Development project.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;For now our project structure looks like this&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--Gmnfi0CR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rswarje5q21tl78eaeqa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Gmnfi0CR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rswarje5q21tl78eaeqa.png" alt="Porject structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Let's coding!&lt;/p&gt;

&lt;h3&gt;
  
  
  1.Install &lt;code&gt;typescript&lt;/code&gt; and &lt;code&gt;typing&lt;/code&gt;
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i typescript @types/react @types/react-dom -D
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;and rename &lt;code&gt;index.jsx&lt;/code&gt; to &lt;code&gt;index.tsx&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--8wtKO7WA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kbcqt4ergk8w683rvthy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--8wtKO7WA--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kbcqt4ergk8w683rvthy.png" alt="Project structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now you can run project&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;But we should create a &lt;code&gt;tsconfig.json&lt;/code&gt; file to  configure our typescript project&lt;/p&gt;

&lt;h3&gt;
  
  
  2.Create &lt;code&gt;tsconfig.json&lt;/code&gt;
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;./node_modules/.bin/tsc --init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4PAAhmBx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sxklls4capr6jz4zq387.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4PAAhmBx--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/sxklls4capr6jz4zq387.png" alt="Configuration"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Our &lt;code&gt;tsconfig.json&lt;/code&gt; should look like this&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--B_mnr_MM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/utdbq6pufqeqpe7rnhq4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B_mnr_MM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/utdbq6pufqeqpe7rnhq4.png" alt="Configuration"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For now, our project looks good and run perfectly. But when open &lt;code&gt;index.tsx&lt;/code&gt; we'll see a redundant import line here&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--k8MdqCxG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rhl9vcsyb97ej1yajqb5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k8MdqCxG--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rhl9vcsyb97ej1yajqb5.png" alt="Project structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What will happen if we remove it?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_GaIFr6t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pa909fh1iwvndw2d1utc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_GaIFr6t--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/pa909fh1iwvndw2d1utc.png" alt="Error"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Oop!&lt;/p&gt;

&lt;h3&gt;
  
  
  3.Config babel
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i @snowpack/plugin-babel @babel/preset-typescript @babel/preset-react -D
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;We need install&lt;br&gt;
&lt;code&gt;@babel/preset-typescript&lt;/code&gt; &amp;amp; &lt;code&gt;@babel/preset-react&lt;/code&gt; to resolve above issue&lt;br&gt;
and install &lt;code&gt;@snowpack/plugin-babel&lt;/code&gt; to integrate it into &lt;code&gt;snowpack&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;After that we need create a &lt;code&gt;babel.config.json&lt;/code&gt; file in root folder&lt;br&gt;
&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--oqk9g-fE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jvmc6zksn3829iz5ylqu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--oqk9g-fE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/jvmc6zksn3829iz5ylqu.png" alt="Configt"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--GZvvHt5O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/di1v1ijasjwm1297a2p3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--GZvvHt5O--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/di1v1ijasjwm1297a2p3.png" alt="Result"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Wala!&lt;/p&gt;

&lt;p&gt;Thanks for your reading, see you in next article&lt;br&gt;
&lt;strong&gt;Part 3: Installing SASS/SCSS and Setting Up CSS Module&lt;/strong&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Part 1: Setup Snowpack</title>
      <dc:creator>Khánh Hoàng (Marcus)</dc:creator>
      <pubDate>Sun, 25 Jul 2021 08:33:45 +0000</pubDate>
      <link>https://dev.to/marcus_hoang/part-1-setup-snowpack-4876</link>
      <guid>https://dev.to/marcus_hoang/part-1-setup-snowpack-4876</guid>
      <description>&lt;p&gt;&lt;strong&gt;Hi! I'm Marcus.&lt;br&gt;
This is my first article in my Front End series.&lt;br&gt;
Each article will be written to read in 5 mins per purpose itself. I'll make a video for more understanding if possible.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Table of contents:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Part 1: Setup Snowpack&lt;/li&gt;
&lt;li&gt;&lt;a href="https://dev.to/marcus_hoang/part-2-installing-typescript-and-setting-up-development-m1l"&gt;Part 2: Installing TypeScript and Setting Up Development&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Today I'll guide you on how to create a &lt;code&gt;snowpack&lt;/code&gt; template project.&lt;/strong&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  1.Create &lt;code&gt;frontend&lt;/code&gt; directory and open it
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--p2SR3Xk9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0n989rfks1yty9f4zwan.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--p2SR3Xk9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0n989rfks1yty9f4zwan.png" alt="directory "&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Or create in terminal&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir frontend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This command will create an empty folder, which contains our source code.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;cd frontend
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  2.Init project
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9POOCZC_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fd1ukwnu2sc1kfku1q87.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9POOCZC_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/fd1ukwnu2sc1kfku1q87.png" alt="Init project"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm init -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This command will create a &lt;code&gt;package.json&lt;/code&gt; file which contains &lt;code&gt;dependencies&lt;/code&gt;, &lt;code&gt;command&lt;/code&gt;, ..etc.&lt;/p&gt;

&lt;h3&gt;
  
  
  3.Install &lt;code&gt;snowpack&lt;/code&gt; dependency
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--DJ-gPCDz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9hh1x28cp77hfzhtmdte.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DJ-gPCDz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9hh1x28cp77hfzhtmdte.png" alt="snowpack"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i snowpack -D
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;With flag &lt;code&gt;-D&lt;/code&gt; it means we only need this dependency in the development environment.&lt;br&gt;
After installed done we need to adjust &lt;code&gt;scripts&lt;/code&gt; in &lt;code&gt;package.json&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--LrfMh2PN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rknvfcgqstuw72cz2xfr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--LrfMh2PN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rknvfcgqstuw72cz2xfr.png" alt="scripts"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"scripts": {
    "snowpack": "snowpack",
    "start": "snowpack dev"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  4.Create snowpack configuration
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--svWWEL4W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/th87zafl0woygt504ln4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--svWWEL4W--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/th87zafl0woygt504ln4.png" alt="configuration"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run snowpack init
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;
&lt;h3&gt;
  
  
  5.Create html template
&lt;/h3&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;touch index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;For now, our source code should be looked like this&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--nPQs4aNf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kvl3rwxih0npih31d0lx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--nPQs4aNf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kvl3rwxih0npih31d0lx.png" alt="root structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--mqs6Jkga--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ba1t8rz9jetltno2g9a7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--mqs6Jkga--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ba1t8rz9jetltno2g9a7.png" alt="serve app"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then open your browser to show the result&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--JKMRXioc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ifremz9ycwav4kxqbio9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--JKMRXioc--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ifremz9ycwav4kxqbio9.png" alt="result"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tada! Ok you can stop &lt;code&gt;dev server&lt;/code&gt; by &lt;code&gt;Ctrl + C&lt;/code&gt; or terminate that process on &lt;code&gt;terminal&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  6.Install React dependencies
&lt;/h3&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm i react react-dom
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Then we need adjust source code structure a little bit&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir src
mkdir public
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Move &lt;code&gt;index.html&lt;/code&gt; to &lt;code&gt;public&lt;/code&gt; directory&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mv index.html public/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--H_Mc6xkX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7qhlc1wlz2j94q4ee7g.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--H_Mc6xkX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/a7qhlc1wlz2j94q4ee7g.png" alt="root structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create &lt;code&gt;index.jsx&lt;/code&gt; file inside &lt;code&gt;src&lt;/code&gt; &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--2yoS_BzC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2th47rvknkrefepjt2ph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2yoS_BzC--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/2th47rvknkrefepjt2ph.png" alt="root structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Edit &lt;code&gt;index.html&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--z0qEzHjf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vdepay0ckgiia53dw7nn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--z0qEzHjf--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/vdepay0ckgiia53dw7nn.png" alt="root structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;and &lt;code&gt;snowpack.config.js&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ydNAXjBR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7pbcan0mi13459sx859r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ydNAXjBR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7pbcan0mi13459sx859r.png" alt="root structure"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mount: {
    public: {
        url: "/",
        static: true
    },
    src: "/"
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;OK! Let's serve the app again.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm run start
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--w4GNdcG_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9dvc3e39ppzu93k5i9qk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--w4GNdcG_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9dvc3e39ppzu93k5i9qk.png" alt="result"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Thanks for your reading, see you in next article&lt;br&gt;
&lt;strong&gt;&lt;a href="https://dev.to/marcus_hoang/part-2-installing-typescript-and-setting-up-development-m1l"&gt;Part 2: Installing TypeScript and Setting Up Development&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>frontend</category>
      <category>snowpack</category>
      <category>react</category>
      <category>dockerize</category>
    </item>
  </channel>
</rss>
