@askphill/shopify-parcel
Version:
Simple JavaScript and CSS bundling for Shopify themes with Parcel.
47 lines (35 loc) • 1.33 kB
JavaScript
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)
`);
}