UNPKG

@askphill/shopify-parcel

Version:

Simple JavaScript and CSS bundling for Shopify themes with Parcel.

47 lines (35 loc) 1.33 kB
#!/usr/bin/env zx import { $, argv } from "zx"; import minimist from "minimist"; process.env.FORCE_COLOR = "1"; const { _: args } = argv; const command = args[0]; const config = await $`cat package.json` .quiet() .then((r) => JSON.parse(r.stdout)) .then((r) => r["shopify-parcel"] || {}); const parsedArgs = minimist(process.argv.slice(2), { string: ["prefix", "entries"], }); if (parsedArgs.prefix) $.env.SHOPIFY_PARCEL_PREFIX = parsedArgs.prefix; if (parsedArgs.entries) $.env.SHOPIFY_PARCEL_CLEAN = "false"; const entries = parsedArgs.entries || config.entries || `src/*.{js,ts,css}`; const defaultFlags = ["--no-cache", "--dist-dir=assets"]; if (command === "build") { $`parcel build ${entries} ${defaultFlags} --no-source-maps`.stdio(); } else if (command === "build:dev") { process.env.NODE_ENV = "development"; $`parcel build ${entries} ${defaultFlags} --no-optimize`.stdio(); } else if (command === "watch") { $`parcel watch ${entries} ${defaultFlags} --no-hmr`.stdio(); } else { console.log(`Usage: shopify-parcel [command] Commands: build Build assets for production build:dev Build assets for development watch Watch assets for development Options: --prefix Override default prefix (skips snippets generation) --entries Override Parcel entries (skips clean) `); }