Shopify Dev CLI Update 01/2025
Introduction
Section titled “Introduction”Our current dev flow requires effort publishing, pushing or using Resource Override to show the frontend app using Shopify Theme App Extension on the local development store. This is a time-consuming process and not efficient.
Previous, since the fact that pushing the Theme App Extension along with npm run dev causes performance issues because
the CLI use git to push the content to the Shopify development store. So, in previous version of @avada/shopify-cli
and
@avada/shopify-app, we remove pushing the Theme App Extension online.
However, with the increase computing power, we can bring this back to improve the development experience for team. With this, we can see the frontend app in the local development store without the need of pushing the Theme App Extension.
Update the version
Section titled “Update the version”Now, let’s update the new dev flow.
Update packages
Section titled “Update packages”First, update the @avada/shopify-cli and @avada/shopify-app to the latest version:
"@avada/shopify-app": "3.58.3-alpha.4","@avada/shopify-cli": "3.58.2-alpha.3"Then yarn install again. It is best to remove your node_modules with find . -name 'node_modules' -type d -prune -exec rm -rf '{}' + and yarn install again.
Update vite.config.js
Section titled “Update vite.config.js”Update this function to your vite.config.js, this will help you replace the CDN_URL with the local cloudflare (or
ngrok) URL:
// change your file name accordingly, place it just like the part which we update the .envupdateThemeAppExtFile('../../extensions/theme-extension/assets/avada-embed.js');
/** * * @param file */function updateThemeAppExtFile(file) { const fileContent = fs.readFileSync(file, 'utf8'); const regex = /const BASE_URL\s*=\s*(['"`])(.*?)\1/; const url = `${process.env.HOST}/scripttag`; const updatedContent = fileContent.replace(regex, `const BASE_URL = '${url}'`); // write everything back to the file system fs.writeFileSync(file, updatedContent);}Configure git
Section titled “Configure git”As we said, it use git to push the theme code, so it may encounter crashing on npm run dev if you have not configured
the git limit, make sure to do this:
git config --global http.version HTTP/1.1 && git config http.postBuffer 524288000If not, you will encounter something like this:
error: RPC failed; curl 92 HTTP/2 stream 0 was not closed cleanly: PROTOCOL_ERROR (err 1)Update the dev commands
Section titled “Update the dev commands”No you should have two versions of dev commands, one with the Theme App Extension and one without. You can add this
to your package.json:
"dev": "shopify app dev --skip-dependencies-installation","dev:no-theme": "shopify app dev --skip-dependencies-installation --theme=",Experience it
Section titled “Experience it”Now, you can run npm run dev to see the frontend app in the local development store without the need of pushing
the Theme App Extension. It should require more time to start the dev server, but it should be faster than pushing
the Theme App Extension over and over again.
If you see like below, you are good to go:
Pushing theme... 0%15:38:54 │ extensions │ Pushing theme... 20%15:38:57 │ extensions │ Pushing theme... 30%15:38:58 │ extensions │ Pushing theme... 40%15:39:02 │ extensions │ Pushing theme... 50%15:39:18 │ extensions │ Pushing theme... 60%15:39:19 │ extensions │ Pushing theme... 70%15:39:20 │ extensions │ Pushing theme... 80%15:39:21 │ extensions │ Pushing theme... 90%15:39:26 │ extensions │ Pushing theme... 100%Sample app
Section titled “Sample app”This is already updated with the app template, you can create a new avada app to see example app:
avada app:create app-nameOthers
Section titled “Others”On the npm run dev terminal, you can press a to quickly open the app in the Shopify partner instead of open the
browser and search the app. This is a small feature but it should help you save some time.