Commit 29aa26ff by zhangxingmin

push

parent 11ffc096
<script>
<script setup>
import initApp from "@/util/router.js";
import {interceptor} from "@/util/interceptor";
import {baseURL,apiURL,cffpURL,companyInfo} from "@/environments/environment";
......
# 使用更新的基础镜像 (Node.js 18+)
FROM docker.m.daocloud.io/library/node:18-bullseye AS build
# 设置环境变量
ENV npm_config_canvas_binary_host_mirror="https://npmmirror.com/mirrors/canvas"
ENV npm_config_sharp_binary_host="https://npmmirror.com/mirrors/sharp"
ENV npm_config_sharp_libvips_binary_host="https://npmmirror.com/mirrors/sharp-libvips"
# 添加 esbuild 镜像源
ENV ESBUILD_BINARY_HOST="https://npmmirror.com/mirrors/esbuild"
# 安装系统依赖 (使用阿里云镜像源)
# 安装系统依赖
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list && \
apt-get update && apt-get install -y --no-install-recommends \
......@@ -29,28 +27,21 @@ WORKDIR /app
# 复制包管理文件
COPY package.json package-lock.json ./
# 1. 显式安装 esbuild 二进制
RUN npm install @esbuild/linux-x64 --verbose --registry=https://registry.npmmirror.com
# 解决 sharp 版本冲突
RUN npm install sharp@0.34.3 --verbose --registry=https://registry.npmmirror.com
# 2. 安装其他原生模块
RUN npm install canvas@2.11.2 --verbose --ignore-scripts
RUN npm install sharp@0.32.6 --verbose --ignore-scripts
# 3. 安装项目依赖(移除 --no-optional)
# 安装项目依赖
RUN npm install --legacy-peer-deps --verbose --registry=https://registry.npmmirror.com
# 4. 验证 esbuild 安装
RUN ls -la node_modules/esbuild/bin && \
./node_modules/.bin/esbuild --version
# 添加 crypto polyfill
RUN echo "globalThis.crypto = { getRandomValues: require('crypto').randomFillSync };" > crypto-polyfill.js
# 复制源码并构建
COPY . .
RUN npm run build:test
RUN NODE_OPTIONS="--require ./crypto-polyfill.js" npm run build:test -- --mode test
# 生产阶段
FROM docker.m.daocloud.io/library/nginx:alpine
COPY --from=build /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
# 设置时区
RUN echo "https://mirrors.aliyun.com/alpine/v3.22/main/" > /etc/apk/repositories && \
......@@ -60,5 +51,9 @@ RUN echo "https://mirrors.aliyun.com/alpine/v3.22/main/" > /etc/apk/repositories
cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && \
echo "Asia/Shanghai" > /etc/timezone
# 复制构建产物
COPY --from=build /app/dist /usr/share/nginx/html
COPY nginx.conf /etc/nginx/conf.d/default.conf
EXPOSE 8333
CMD ["nginx", "-g", "daemon off;"]
......@@ -16,13 +16,10 @@
]
},
"scripts": {
"dev": "vite",
"build": "vite build",
"test": "vite --mode=test",
"build:dev": "vite build --mode=development",
"build:test": "vite build --mode=test",
"preview": "vite preview",
"report": "npm run build --report"
"dev": "vite --host 0.0.0.0",
"build": "vite build --mode production",
"build:test": "vite build --mode test",
"preview": "vite preview --port 4173"
},
"dependencies": {
"crypto-js": "^4.2.0",
......@@ -71,6 +68,8 @@
"vuedraggable": "^4.1.0"
},
"devDependencies": {
"path": "^0.12.7",
"vite-plugin-vue-setup-extend": "^0.4.0",
"less": "^4.4.0",
"@vitejs/plugin-vue": "^6.0.0",
"@vitejs/plugin-vue-jsx": "^5.0.1",
......
// vite.config.js
import { defineConfig } from 'vite';
import vue from '@vitejs/plugin-vue';
import path from 'path';
export default defineConfig({
plugins: [
vue({
template: {
compilerOptions: {
// 解决模板解析问题
isCustomElement: (tag) => tag.startsWith('uni-')
}
}
})
],
resolve: {
alias: {
'@': path.resolve(__dirname, './src'),
}
},
css: {
preprocessorOptions: {
scss: {
additionalData: `@import "@/styles/variables.scss";`
},
less: {
math: 'always'
}
}
},
build: {
commonjsOptions: {
transformMixedEsModules: true // 解决 CommonJS/ESM 混合问题
}
}
});
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment