<?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>Forem: Shane Rosenthal</title>
    <description>The latest articles on Forem by Shane Rosenthal (@shanedrosenthal).</description>
    <link>https://forem.com/shanedrosenthal</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%2F333346%2F674d067f-7180-4e72-8d29-a558759963e8.jpg</url>
      <title>Forem: Shane Rosenthal</title>
      <link>https://forem.com/shanedrosenthal</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/shanedrosenthal"/>
    <language>en</language>
    <item>
      <title>Why I Would Be A Great Fit For TailwindUI</title>
      <dc:creator>Shane Rosenthal</dc:creator>
      <pubDate>Mon, 25 May 2020 15:18:46 +0000</pubDate>
      <link>https://forem.com/shanedrosenthal/why-i-would-be-a-great-fit-for-tailwindui-16aa</link>
      <guid>https://forem.com/shanedrosenthal/why-i-would-be-a-great-fit-for-tailwindui-16aa</guid>
      <description>&lt;p&gt;Over the last few years &lt;a href="https://www.tailwindcss.com"&gt;TailwindCSS&lt;/a&gt; has gained a lot of steam in the front-end world. And, more recently, with the release of &lt;a href="https://tailwindui.com/"&gt;TailwindUI&lt;/a&gt; you can even more rapidly start building out custom html admin panels and marketing pages and components by copying some code constructed by the creator of Tailwind, &lt;a href="https://twitter.com/adamwathan"&gt;Adam Wathan&lt;/a&gt; himself.&lt;/p&gt;

&lt;p&gt;That is like being handed blueprints to a shuttle for your job at NASA from &lt;a href="https://i.insider.com/5b9fdb115c5e5236008b6334?width=750&amp;amp;format=jpeg&amp;amp;auto=webp"&gt;Elon Musk&lt;/a&gt;, like getting access to &lt;a href="https://i.pinimg.com/originals/41/ed/03/41ed03a102cdd1d363a44f17d50d983a.jpg"&gt;Gordon Ramsey&lt;/a&gt;'s secret recipes from his great grandmother or jumping off a cliff with none other than &lt;a href="https://c4.wallpaperflare.com/wallpaper/460/596/56/funny-avatar-the-last-airbender-aang-1024x768-entertainment-funny-hd-art-wallpaper-preview.jpg"&gt;Aang&lt;/a&gt;, the Avatar himself! &lt;/p&gt;

&lt;p&gt;Build. Applications. Properly. Now.&lt;/p&gt;

&lt;p&gt;If you have been building your applications with TailwindUI since it's release earlier this year like &lt;a href="https://app.savvyhousehunting.com"&gt;I have&lt;/a&gt;, then you can see both it's power in taking your focus away from having to figure out how much padding your sidebar links should have, but also what it is lacking. Sadly, there are several "teaser" components that only leave us with a feeling of despair, like &lt;a href="https://www.youtube.com/watch?v=lvWq8dRUtok"&gt;Screech getting turned down by Lisa&lt;/a&gt;, again.&lt;/p&gt;

&lt;p&gt;But with every hope, comes a promise. Adam recently announced an opportunity not only to work directly with him and &lt;a href="https://twitter.com/steveschoger"&gt;Steve Schoger&lt;/a&gt;, the Canadian &lt;a href="https://sayingimages.com/wp-content/uploads/back-to-the-future-quotes-emmet.jpg"&gt;Dr. Emmet Brown&lt;/a&gt; of design, but an opportunity to build out these teased components and several other facets that will bring TailwindUI to the masses and the future.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=Vy7RaQUmOzE"&gt;I. AM. THE. ONE.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Adam, do you need a pro that will churn out enterprise-level solutions to user-facing API's? Or a guru that will work with you to discovering an approach to supporting multiple color-palettes, while still being PurgeCSS-friendly? Let me be the &lt;a href="https://www.youtube.com/watch?v=RdpgnXYabtg"&gt;Jesse Pinkman to your Walter White&lt;/a&gt;, the &lt;a href="https://www.youtube.com/watch?v=xEO-nx85sNA"&gt;Michelangelo to your Splinter&lt;/a&gt;, the &lt;a href="https://www.youtube.com/watch?v=lnw_emcvrPs"&gt;Neo to your Morpheus&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I have been working with Laravel since 2012, Vue.js since 2016, and TailwindUI since 2020! I am &lt;a href="https://www.certmetrics.com/amazon/public/badge.aspx?i=9&amp;amp;t=c&amp;amp;d=2019-04-15&amp;amp;ci=AWS00839188"&gt;AWS Certified&lt;/a&gt;, &lt;a href="https://www.youtube.com/watch?v=amnZoXR5I04"&gt;kid tested and mother approved&lt;/a&gt;. I think though, the most important asset I bring to you is the ability &lt;a href="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/c78f9fe5-bf67-4083-8f14-3323d516c8d9/d18ywoz-321a4ee5-d269-4de4-b110-c628814eb49a.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOiIsImlzcyI6InVybjphcHA6Iiwib2JqIjpbW3sicGF0aCI6IlwvZlwvYzc4ZjlmZTUtYmY2Ny00MDgzLThmMTQtMzMyM2Q1MTZjOGQ5XC9kMTh5d296LTMyMWE0ZWU1LWQyNjktNGRlNC1iMTEwLWM2Mjg4MTRlYjQ5YS5qcGcifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6ZmlsZS5kb3dubG9hZCJdfQ.PdCDzqMTq7N7r6rIvq-W1JCWzswXAMCD8NBtRlvBBYA"&gt;think outside the box&lt;/a&gt; to come up with real-world solutions to everyday problems. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.youtube.com/watch?v=99Op1TaXmCw"&gt;You ain't never had a friend like me.&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Dynamic Imports On Laravel Vapor With Vue Router</title>
      <dc:creator>Shane Rosenthal</dc:creator>
      <pubDate>Mon, 10 Feb 2020 16:07:55 +0000</pubDate>
      <link>https://forem.com/shanedrosenthal/dynamic-imports-on-laravel-vapor-with-vue-router-1o51</link>
      <guid>https://forem.com/shanedrosenthal/dynamic-imports-on-laravel-vapor-with-vue-router-1o51</guid>
      <description>&lt;p&gt;Recently I have been playing around with &lt;a href="https://vapor.laravel.com/,"&gt;Laravel Vapor&lt;/a&gt; which is fresh approach to the common Laravel "monolithic" server we have grown to trust, love and hate at times. And while Vapor delivers on it's promises to "Launch your Laravel infrastructure on Vapor and fall in love with the scalable simplicity of serverless." it does have some caveats that are handled differently than what you are used to.&lt;/p&gt;

&lt;p&gt;A few months ago &lt;a href="https://laravel-news.com/@jasonlbeggs"&gt;Jason Beggs&lt;/a&gt; wrote up a wonderful post about &lt;a href="https://laravel-news.com/using-dynamic-imports-with-laravel-mix"&gt;Using Dynamic Imports with Laravel Mix&lt;/a&gt; which in essence, splits up your Vue components js files into separate files, instead of storing and loading everything in the common &lt;code&gt;app.js&lt;/code&gt; file. This approach will certainly speed up your load times and give your users a better experience. Let's see how it works:&lt;/p&gt;

&lt;h2&gt;
  
  
  Adding support for dynamic imports
&lt;/h2&gt;

&lt;p&gt;First, we are going to add a &lt;code&gt;babel.rc&lt;/code&gt; file into the root of our project and add support for dynamic imports like so:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;plugins&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;@babel/plugin-syntax-dynamic-import&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Alternatively, as Jason points out, we can add the config directly to our &lt;code&gt;webpack.mix.js&lt;/code&gt; file:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;mix&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;babelConfig&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
  &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@babel/plugin-syntax-dynamic-import&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;span class="p"&gt;});&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;For &lt;a href="https://router.vuejs.org/"&gt;Vue Router&lt;/a&gt; I have a &lt;code&gt;router.js&lt;/code&gt; file with all of my routes, instead of importing all of my components for each route we use a different function to load the right component on the right page (route). The 'webpackChunkName' tells webpack the name of the file that it should create for us.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nl"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/dashboard/videos&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;videos&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="nx"&gt;component&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="cm"&gt;/* webpackChunkName: "videos" */&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./components/Videos/Videos&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;path&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;/dashboard/images&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;images&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;component&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="k"&gt;import&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="cm"&gt;/* webpackChunkName: "images" */&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;./components/Images/Images&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt;
&lt;span class="p"&gt;},&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Locally, with &lt;code&gt;npm run watch&lt;/code&gt; and checking out the JS console networking tab, we can see our different JS files being loaded on each relevant page. &lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Make sure, if you have import statements at the top of your route file to comment/delete them or web pack will load the component from &lt;code&gt;app.js&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Now for the fun part, deploying to Vapor
&lt;/h2&gt;

&lt;p&gt;Since Vapor does not store your public files inside of a public directory on your server, &lt;em&gt;because there is no server&lt;/em&gt; we cannot access these files in our environment the same way we do locally. &lt;a href="https://docs.vapor.build/1.0/introduction.html"&gt;The Vapor Docs&lt;/a&gt; tell us that Vapor creates an environment variable that points to our asset directory which is inside of an AWS S3 bucket that Vapor creates for us. Additionally Vapor injects that variable into our front end code, allowing us to reference those files with&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ASSET_URL&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now all we need to do is tell webpack where those dynamically imported files are coming from. In your &lt;code&gt;webpack.mix.js&lt;/code&gt; file add:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;mix&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;inProduction&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;ASSET_URL&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;ASSET_URL&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

    &lt;span class="nx"&gt;mix&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;webpackConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;webpack&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
                &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nx"&gt;webpack&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;DefinePlugin&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt;
                    &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;process.env.ASSET_PATH&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;JSON&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;stringify&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;ASSET_URL&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
                &lt;span class="p"&gt;})&lt;/span&gt;
            &lt;span class="p"&gt;],&lt;/span&gt;
            &lt;span class="na"&gt;output&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;publicPath&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;ASSET_URL&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;};&lt;/span&gt;
    &lt;span class="p"&gt;});&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;And see our dynamic files importing as we would expect, directly from our Vapor S3 bucket!&lt;/p&gt;

&lt;h3&gt;
  
  
  A couple "gotchas".
&lt;/h3&gt;

&lt;p&gt;We are now needing to npm run prod on our staging environment for our &lt;code&gt;webpackConfig&lt;/code&gt; to be registered. In your &lt;code&gt;vapor.yml&lt;/code&gt; file change the staging build section to&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;build&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
   &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;composer install&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
   &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;php artisan event:cache&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
   &lt;span class="o"&gt;-&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;npm install &amp;amp;&amp;amp; npm run prod &amp;amp;&amp;amp; rm -rf node_modules&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;In your layout file where you are pulling in the app.js/app.css files we need to make sure we are pulling from mix locally, and assets in our Vapor environments.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;app&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'local'&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt;
   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;script&lt;/span&gt; &lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"{{ mix('js/app.js') }}"&lt;/span&gt; &lt;span class="nx"&gt;defer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nx"&gt;script&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;link&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"{{ mix('css/main.css') }}"&lt;/span&gt; &lt;span class="nx"&gt;rel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"stylesheet"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="k"&gt;else&lt;/span&gt;
   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;script&lt;/span&gt; &lt;span class="nx"&gt;src&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"{{ asset('js/app.js') }}"&lt;/span&gt; &lt;span class="nx"&gt;defer&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span class="nx"&gt;script&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
   &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nb"&gt;link&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"{{ asset('css/main.css') }}"&lt;/span&gt; &lt;span class="nx"&gt;rel&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"stylesheet"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="o"&gt;@&lt;/span&gt;&lt;span class="k"&gt;endif&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;Now we can&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight"&gt;&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;vapor&lt;/span&gt; &lt;span class="nx"&gt;deploy&lt;/span&gt; &lt;span class="nx"&gt;staging&lt;/span&gt; &lt;span class="o"&gt;--&lt;/span&gt;&lt;span class="nx"&gt;message&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;Adds dynamic import support&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;



&lt;p&gt;And see our js files chunked into smaller bits, streamlining the users experience in Vapor!&lt;/p&gt;

&lt;p&gt;Happy deploying!&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>vue</category>
      <category>serverless</category>
      <category>aws</category>
    </item>
  </channel>
</rss>
