我的 CICD 有一个 docker 文件。
# For Development Environment
FROM node:16.13.2-alpine as build-stage
RUN sed -i 's/https/http/' /etc/apk/repositories
# Work Directory
WORKDIR /app
# Node Modules
COPY .npmrc package.json yarn.lock ./
RUN apk update && apk add git
ENV PYTHONUNBUFFERED=1
RUN apk add --update --no-cache python3 alpine-sdk && ln -sf python3 /usr/bin/python
RUN python3 -m ensurepip
RUN pip3 install --no-cache --upgrade pip setuptools
ENV GIT_TERMINAL_PROMPT=1
# Install node modules
RUN yarn install --cache-folder .yarn
RUN yarn add "@X@debug"
# Copy app source to work directory
COPY . .
RUN export NODE_OPTIONS='--max-old-space-size=8192'
RUN yarn test:unit
RUN yarn run build-development
# production stage
FROM nginx as production-stage
COPY --from=build-stage /app/dist /usr/share/nginx/html
COPY --from=build-stage /app/dist/v2/index.html /usr/share/nginx/html/
COPY server-config/development.conf /etc/nginx/conf.d/default.conf
EXPOSE 80
CMD ["nginx", "-g", "daemon off;"]
我需要在构建之前将我们的内部 sdk 更新到最新版本,所以我添加了这一行:
RUN yarn add "@back/room-sdk@debug"
这有效,我的 sdk 已更新,并且构建版本确实包含最新的 sdk 版本。
我在我的
vite.config
文件中使用此代码来获取sdk版本并稍后将其记录到控制台(在浏览器中)process.env.npm_package_dependencies__back_room_sdk
但是这个值没有更新,它给了我旧版本号。 如果我手动更新 sdk,提交并推送,然后运行 CICD,我可以使用此代码获得正确的版本号。
ENV:vue3 + vite
我尝试将 package.json 文件复制到我能想到的任何地方......没有成功 我也尝试过这个在部署之前在 docker 中构建时更新存储库版本
为了确保您的
Vite
项目反映CI/CD期间更新的SDK版本:
RUN yarn cache clean
COPY package.json yarn.lock ./
RUN cat package.json
RUN yarn build