diff --git a/packages/default.do b/packages/default.do index 233ed24..aa6b525 100644 --- a/packages/default.do +++ b/packages/default.do @@ -4,30 +4,6 @@ case "$1" in for d in src/*.js; do [ -f "$d" ] && echo lib/$(basename "$d"); done | xargs redo-ifchange for d in *.webpack.config.js do - depifchange='' - depifcreate='' - for dep in $(cat package.json | \ - jq -r '.dependencies | to_entries[].key' | \ - fgrep '@syndicate-lang/' | \ - sed -e 's:^@syndicate-lang/::' | \ - fgrep -v 'core') ## core doesn't have any compilation step - do - for srcfile in ../$dep/src/*.js - do - if [ -f $srcfile ] - then - libfile=$(echo $srcfile | sed -e 's:/src/:/lib/:') - if [ -f $libfile ] - then - depifchange="$depifchange $libfile" - else - depifcreate="$depifcreate $libfile" - fi - fi - done - done - redo-ifchange $depifchange - redo-ifchange $depifcreate [ -f "$d" ] && echo dist/$(basename "$d" .webpack.config.js).js done | xargs redo-ifchange [ -f _all.do ] && redo-ifchange _all || true diff --git a/packages/default.js.do b/packages/default.js.do index 10b1eb6..fb7e6a5 100644 --- a/packages/default.js.do +++ b/packages/default.js.do @@ -21,6 +21,30 @@ case "$1" in npx syndicate-babel "src/$file" ;; */dist/*) + # Conservatively assume the distribution depends on ALL the + # local source files PLUS the lib/*.js of dependent syndicate + # packages, other than core which has src/*.js files instead. + # + for d in src/*.js; do echo lib/$(basename $d); done | xargs redo-ifchange + for dep in $(cat package.json | \ + jq -r '.dependencies | to_entries[].key' | \ + fgrep '@syndicate-lang/' | \ + sed -e 's:^@syndicate-lang/::') + do + for srcfile in ../$dep/src/*.js + do + if [ -f $srcfile ] + then + if [ "$dep" = "core" ] + then + echo $srcfile + else + libfile=$(echo $srcfile | sed -e 's:/src/:/lib/:') + echo $libfile + fi + fi + done + done | redo-ifchange configfile=$(basename "$1" .js).webpack.config.js redo-ifchange $configfile for maybedep in $(npx webpack --config "$configfile" --json -o "$targettempfile" | jq -r '.modules[].identifier')