fdd2629795
* use esbuild for React instead of tsdx * remove tsdx from Vue * use consistent names * add jest and prettier * update scripts * ignore some folders for prettier * run lint script instead of tsdx lint * run prettier en-masse This has a few changes because of the new prettier version. * bump typescript to latest version * make typescript happy * cleanup playground package.json * make esbuild a dev dependency * make scripts consistent * fix husky hooks * add dedicated watch script * add `yarn playground-react` and `yarn react-playground` (alias) This will make sure to run a watcher for the actual @headlessui/react package, and start a development server in the playground-react package. * ignore formatting in the .next folder * run prettier on playground-react package * setup playground-vue Still not 100% working, but getting there! * add playground aliases in @headlessui/vue and @headlessui/react This allows you to run `yarn react playground` or `yarn vue playground` from the root. * add `clean` script * move examples folder in playground-vue to root * ensure new lines for consistency in scripts * fix typescript issue * fix typescript issues in playgrounds * make sure to run prettier on everything it can * run prettier on all files * improve error output If you minify the code, then it could happen that the errors are a bit obscure. This will hardcode the component name to improve errors. * add the `prettier-plugin-tailwindcss` plugin, party! * update changelog
34 lines
983 B
Bash
Executable File
34 lines
983 B
Bash
Executable File
#!/bin/bash
|
|
set -e
|
|
|
|
# Known variables
|
|
outdir="./dist"
|
|
name="headlessui"
|
|
input="./src/index.ts"
|
|
|
|
# Find executables
|
|
esbuild=$(yarn bin esbuild)
|
|
tsc=$(yarn bin tsc)
|
|
|
|
# Setup shared options for esbuild
|
|
sharedOptions=()
|
|
sharedOptions+=("--bundle")
|
|
sharedOptions+=("--platform=browser")
|
|
sharedOptions+=("--target=es2020")
|
|
|
|
# Generate actual builds
|
|
NODE_ENV=production $esbuild $input --format=esm --outfile=$outdir/$name.esm.js --minify ${sharedOptions[@]} $@ &
|
|
NODE_ENV=production $esbuild $input --format=cjs --outfile=$outdir/$name.prod.cjs.js --minify ${sharedOptions[@]} $@ &
|
|
NODE_ENV=production $esbuild $input --format=iife --outfile=$outdir/$name.iife.js --minify ${sharedOptions[@]} $@ &
|
|
NODE_ENV=development $esbuild $input --format=cjs --outfile=$outdir/$name.dev.cjs.js ${sharedOptions[@]} $@ &
|
|
|
|
# Generate types
|
|
tsc --emitDeclarationOnly --outDir $outdir &
|
|
|
|
# Copy build files over
|
|
cp -rf ./build/ $outdir
|
|
|
|
# Wait for all the scripts to finish
|
|
wait
|
|
|