【发布时间】:2017-05-19 15:17:03
【问题描述】:
我正在使用package.json 的脚本块在yarn install 和yarn install --production 之后立即调用postinstall.sh 脚本。
postinstall.sh 包含一些私有的npm 包,所以我们希望仅在环境 为开发环境时下载这些包中的devDependencies,而当环境为 时我们希望忽略生产。
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
上述脚本的问题是我们不希望有任何用户交互,那么如何根据环境从package.json 传递参数?
【问题讨论】:
标签: node.js npm development-environment npm-install production-environment