Support projects that require pnpm
This commit is contained in:
parent
cd097f083d
commit
5499f8cb3e
1 changed files with 68 additions and 13 deletions
|
|
@ -14,15 +14,68 @@ usage() {
|
|||
exit 1
|
||||
}
|
||||
|
||||
if ! [ -f /usr/bin/npm ]; then
|
||||
echo >&2
|
||||
echo "`basename $0` requires npm to run" >&2
|
||||
echo >&2
|
||||
echo "Run the following to fix this" >&2
|
||||
echo " sudo dnf install npm" >&2
|
||||
echo >&2
|
||||
exit 2
|
||||
fi
|
||||
# Set to "npm" or "pnpm":
|
||||
NPM=npm
|
||||
|
||||
require_npm() {
|
||||
if ! [ -f /usr/bin/npm ]; then
|
||||
echo >&2
|
||||
echo "`basename $0` requires npm to run" >&2
|
||||
echo >&2
|
||||
echo "Run the following to fix this" >&2
|
||||
echo " sudo dnf install npm" >&2
|
||||
echo >&2
|
||||
exit 2
|
||||
fi
|
||||
}
|
||||
# For now, always require npm:
|
||||
require_npm
|
||||
|
||||
require_pnpm() {
|
||||
if ! [ -f /usr/bin/pnpm ]; then
|
||||
echo >&2
|
||||
echo "`basename $0` requires pnpm to run" >&2
|
||||
echo >&2
|
||||
echo "Run the following to fix this" >&2
|
||||
echo " sudo dnf install pnpm" >&2
|
||||
echo >&2
|
||||
exit 2
|
||||
fi
|
||||
NPM=pnpm
|
||||
}
|
||||
|
||||
npm_pack() {
|
||||
case "${NPM}" in
|
||||
npm)
|
||||
npm pack "$@"
|
||||
;;
|
||||
pnpm)
|
||||
pnpm pack "$@"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
npm_install_dev() {
|
||||
case "${NPM}" in
|
||||
npm)
|
||||
npm install --omit=optional
|
||||
;;
|
||||
pnpm)
|
||||
pnpm install --no-optional --dev
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
npm_install_prod() {
|
||||
case "${NPM}" in
|
||||
npm)
|
||||
npm install --omit=optional --omit=dev
|
||||
;;
|
||||
pnpm)
|
||||
pnpm install --no-optional --prod
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
if [ $# -lt 1 ]; then
|
||||
usage
|
||||
|
|
@ -54,20 +107,22 @@ pushd ${TMP_DIR}
|
|||
if [ -f "$TARBALL" ]; then
|
||||
TARBALL_DIR=$(mktemp -d -t ci-XXXXXXXXXX)
|
||||
pushd ${TARBALL_DIR}
|
||||
[ -f pnpm-workspace.yaml ] && require_pnpm
|
||||
tar xfz ${TARBALL} --strip-components 1
|
||||
npm pack .
|
||||
npm_pack .
|
||||
popd > /dev/null
|
||||
mv ${TARBALL_DIR}/*.tgz .
|
||||
rm -rf ${TARBALL_DIR}
|
||||
else
|
||||
npm pack ${PACKAGE}
|
||||
npm_pack ${PACKAGE}
|
||||
fi
|
||||
tar xfz *.tgz
|
||||
cd package
|
||||
[ -f pnpm-workspace.yaml ] && require_pnpm
|
||||
for packagejson in $(find . -type d -name node_modules\* -prune -o -type f -name package.json -print); do
|
||||
pushd $(dirname $packagejson)
|
||||
echo " Downloading prod dependencies"
|
||||
npm install --omit=dev --omit=optional
|
||||
npm_install_prod
|
||||
if [ $? -ge 1 ] ; then
|
||||
echo " ERROR WILL ROBINSON"
|
||||
rm -rf node_modules
|
||||
|
|
@ -97,7 +152,7 @@ fi
|
|||
for packagejson in $(find . -type d -name node_modules\* -prune -o -type f -name package.json -print); do
|
||||
pushd $(dirname $packagejson)
|
||||
echo " Downloading dev dependencies"
|
||||
npm install --omit=optional
|
||||
npm_install_dev
|
||||
if [ $? -ge 1 ] ; then
|
||||
echo " ERROR WILL ROBINSON"
|
||||
else
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue