I am using package.json's script block to call postinstall.sh script immediately after yarn install and yarn install --production.
postinstall.sh contains some private npm packages, so we want to download devDependencies of those packages only when the environment is development and we want to ignore when the environment is production.
package.json
"private": true,
"scripts": {
"postinstall": "./postinstall.sh"
}
postinstall.sh
# Get the input from user to check server is Production or not
echo
echo "INFO: We are not downloading Development dependencies of following services in Production environment:
echo "WARN: please enter 'yes' or 'no' only."
while [[ "$PRODUCTION_ENV" != "yes" && "$PRODUCTION_ENV" != "no" ]]
do
read -p "Is this Production environment?(yes/no): " PRODUCTION_ENV
done
if [[ "$PRODUCTION_ENV" == "yes" ]]; then
ENV='--only=production'
fi
npm install $ENV --ignore-scripts pkg-name
The problem with above script is we don't want any user interaction, so how can I pass an argument from package.json depending on the environment?
via Soham Shetty
No comments:
Post a Comment