diff --git a/.gitignore b/.gitignore index fcd290d2..fb929853 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,5 @@ tsconfig.tsbuildinfo **/prod.yaml scripts/update.sh + +output diff --git a/build-output.sh b/build-output.sh new file mode 100755 index 00000000..a2caa46b --- /dev/null +++ b/build-output.sh @@ -0,0 +1,77 @@ +#! /bin/bash +# 该脚本只保留生产环境运行所需文件到统一目录 + +# 构建 +pnpm install +pnpm run build + +outputDir="output" + +# 新建输出目录 +if [ -d ${outputDir} ]; then + rm -rfv ${outputDir} +fi +mkdir -p ${outputDir} +cd ${outputDir} +mkdir -p packages +mkdir -p packages/config +mkdir -p packages/constants +mkdir -p packages/domains +mkdir -p packages/client +mkdir -p packages/server +cd ../ + +# 复制文件 +cp -v -L -r config ${outputDir} +cd ${outputDir}/config +rm -f dev.yaml +cd ../../ +cp -v -L package.json ${outputDir} +cp -v -L pnpm-lock.yaml ${outputDir} +cp -v -L pnpm-workspace.yaml ${outputDir} + +# packages/config +cd packages/config +configOutput="../../${outputDir}/packages/config" +cp -v -L package.json ${configOutput} +cp -v -L -r lib ${configOutput} +cd ../../ + +# packages/constants +cd packages/constants +constantsOutput="../../${outputDir}/packages/constants" +cp -v -L package.json ${constantsOutput} +cp -v -L -r lib ${constantsOutput} +cd ../../ + +# packages/domains +cd packages/domains +domainsOutput="../../${outputDir}/packages/domains" +cp -v -L package.json ${domainsOutput} +cp -v -L -r lib ${domainsOutput} +cd ../../ + +# packages/client +cd packages/client +clientOutput="../../${outputDir}/packages/client" +cp -v -L package.json ${clientOutput} +cp -v -L prod-server.js ${clientOutput} +cp -v -L -r public ${clientOutput} +cp -v -L -r .next ${clientOutput} +cd ../../ + +# packages/server +cd packages/server +serverOutput="../../${outputDir}/packages/server" +cp -v -L package.json ${serverOutput} +cp -v -L nest-cli.json ${serverOutput} +cp -v -L -r dist ${serverOutput} +cd ../../ + +# @see https://github.com/typicode/husky/issues/914#issuecomment-826768549 +cd ${outputDir} +npm set-script prepare "" +pnpm install -r --prod +cd ../ + +echo "${outputDir} 打包完成"