upate
This commit is contained in:
parent
6ad0742e9c
commit
37c01d7bac
17
Dockerfile
17
Dockerfile
@ -8,6 +8,9 @@ RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories
|
|||||||
ARG NODE_ENV=production
|
ARG NODE_ENV=production
|
||||||
ENV NODE_ENV=${NODE_ENV}
|
ENV NODE_ENV=${NODE_ENV}
|
||||||
|
|
||||||
|
# 输出构建环境信息
|
||||||
|
RUN echo "Building for environment: ${NODE_ENV}"
|
||||||
|
|
||||||
# 安装 yarn
|
# 安装 yarn
|
||||||
RUN apk add --no-cache yarn
|
RUN apk add --no-cache yarn
|
||||||
|
|
||||||
@ -27,12 +30,26 @@ RUN yarn install --frozen-lockfile
|
|||||||
# 复制项目文件
|
# 复制项目文件
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
|
# 创建或更新环境文件
|
||||||
|
RUN echo "NODE_ENV=${NODE_ENV}" > .env && \
|
||||||
|
if [ "$NODE_ENV" = "production" ]; then \
|
||||||
|
echo "VUE_APP_API_URL=https://api.beefast.co" >> .env; \
|
||||||
|
elif [ "$NODE_ENV" = "testing" ]; then \
|
||||||
|
echo "VUE_APP_API_URL=https://api-dev.beefast.co" >> .env; \
|
||||||
|
else \
|
||||||
|
echo "VUE_APP_API_URL=http://localhost:8000" >> .env; \
|
||||||
|
fi && \
|
||||||
|
cat .env
|
||||||
|
|
||||||
# 根据环境变量选择构建命令
|
# 根据环境变量选择构建命令
|
||||||
RUN if [ "$NODE_ENV" = "production" ]; then \
|
RUN if [ "$NODE_ENV" = "production" ]; then \
|
||||||
|
echo "Running production build" && \
|
||||||
yarn build:prod; \
|
yarn build:prod; \
|
||||||
elif [ "$NODE_ENV" = "testing" ]; then \
|
elif [ "$NODE_ENV" = "testing" ]; then \
|
||||||
|
echo "Running testing build" && \
|
||||||
yarn build:test; \
|
yarn build:test; \
|
||||||
else \
|
else \
|
||||||
|
echo "Running development build" && \
|
||||||
yarn build:dev; \
|
yarn build:dev; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
|||||||
@ -4,6 +4,11 @@ import App from './App.vue';
|
|||||||
import router from './router';
|
import router from './router';
|
||||||
import store from './store';
|
import store from './store';
|
||||||
import 'ant-design-vue/dist/antd.css';
|
import 'ant-design-vue/dist/antd.css';
|
||||||
|
import debug from './utils/debug';
|
||||||
|
|
||||||
|
// 输出环境信息
|
||||||
|
console.log('当前运行环境:', process.env.NODE_ENV);
|
||||||
|
console.log('API基础URL:', process.env.VUE_APP_API_URL);
|
||||||
|
|
||||||
const app = createApp(App);
|
const app = createApp(App);
|
||||||
|
|
||||||
@ -11,4 +16,7 @@ app.use(Antd);
|
|||||||
app.use(router);
|
app.use(router);
|
||||||
app.use(store);
|
app.use(store);
|
||||||
|
|
||||||
|
// 挂载调试工具到全局
|
||||||
|
app.config.globalProperties.$debug = debug;
|
||||||
|
|
||||||
app.mount('#app');
|
app.mount('#app');
|
||||||
@ -1,8 +1,21 @@
|
|||||||
// 环境配置
|
// 环境配置
|
||||||
const ENV = process.env.NODE_ENV || 'development';
|
const ENV = process.env.NODE_ENV || 'development';
|
||||||
|
|
||||||
// API 配置
|
// 根据环境确定 API URL
|
||||||
const API_BASE_URL = process.env.VUE_APP_API_URL;
|
let apiUrl;
|
||||||
|
if (ENV === 'testing') {
|
||||||
|
apiUrl = 'https://api-dev.beefast.co';
|
||||||
|
} else if (ENV === 'production') {
|
||||||
|
apiUrl = 'https://api.beefast.co';
|
||||||
|
} else {
|
||||||
|
apiUrl = 'http://localhost:8000';
|
||||||
|
}
|
||||||
|
|
||||||
|
// 使用环境变量中的 API URL(如果存在)
|
||||||
|
const API_BASE_URL = process.env.VUE_APP_API_URL || apiUrl;
|
||||||
|
|
||||||
|
console.log('配置文件中的环境:', ENV);
|
||||||
|
console.log('配置文件中的API URL:', API_BASE_URL);
|
||||||
|
|
||||||
// 当前环境的 API 基础地址
|
// 当前环境的 API 基础地址
|
||||||
const BASE_URL = API_BASE_URL;
|
const BASE_URL = API_BASE_URL;
|
||||||
|
|||||||
12
src/utils/debug.js
Normal file
12
src/utils/debug.js
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
// 调试环境变量
|
||||||
|
console.log('===== 环境变量调试信息 =====');
|
||||||
|
console.log('NODE_ENV:', process.env.NODE_ENV);
|
||||||
|
console.log('VUE_APP_API_URL:', process.env.VUE_APP_API_URL);
|
||||||
|
console.log('===========================');
|
||||||
|
|
||||||
|
export default {
|
||||||
|
logEnv: () => {
|
||||||
|
console.log('当前环境:', process.env.NODE_ENV);
|
||||||
|
console.log('API地址:', process.env.VUE_APP_API_URL);
|
||||||
|
}
|
||||||
|
};
|
||||||
@ -12,23 +12,34 @@ module.exports = (env, argv) => {
|
|||||||
// 确定环境
|
// 确定环境
|
||||||
const nodeEnv = env?.testing ? 'testing' : mode;
|
const nodeEnv = env?.testing ? 'testing' : mode;
|
||||||
|
|
||||||
|
console.log('构建环境:', nodeEnv);
|
||||||
|
console.log('命令行参数:', env);
|
||||||
|
|
||||||
// 加载对应的环境变量文件
|
// 加载对应的环境变量文件
|
||||||
const envFile = `.env.${nodeEnv}`;
|
const envFile = `.env.${nodeEnv}`;
|
||||||
const defaultEnvFile = '.env';
|
const defaultEnvFile = '.env';
|
||||||
|
|
||||||
|
console.log('尝试加载环境文件:', envFile);
|
||||||
|
|
||||||
// 加载环境变量
|
// 加载环境变量
|
||||||
let envConfig = {};
|
let envConfig = {};
|
||||||
|
|
||||||
// 先尝试加载默认环境变量文件
|
// 先尝试加载默认环境变量文件
|
||||||
if (fs.existsSync(defaultEnvFile)) {
|
if (fs.existsSync(defaultEnvFile)) {
|
||||||
|
console.log('加载默认环境文件:', defaultEnvFile);
|
||||||
envConfig = dotenv.parse(fs.readFileSync(defaultEnvFile));
|
envConfig = dotenv.parse(fs.readFileSync(defaultEnvFile));
|
||||||
}
|
}
|
||||||
|
|
||||||
// 再尝试加载特定环境的环境变量文件
|
// 再尝试加载特定环境的环境变量文件
|
||||||
if (fs.existsSync(envFile)) {
|
if (fs.existsSync(envFile)) {
|
||||||
|
console.log('加载特定环境文件:', envFile);
|
||||||
envConfig = { ...envConfig, ...dotenv.parse(fs.readFileSync(envFile)) };
|
envConfig = { ...envConfig, ...dotenv.parse(fs.readFileSync(envFile)) };
|
||||||
|
} else {
|
||||||
|
console.log('环境文件不存在:', envFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
console.log('加载的环境变量:', envConfig);
|
||||||
|
|
||||||
// 将环境变量转换为 webpack 定义插件需要的格式
|
// 将环境变量转换为 webpack 定义插件需要的格式
|
||||||
const envKeys = Object.keys(envConfig).reduce((prev, next) => {
|
const envKeys = Object.keys(envConfig).reduce((prev, next) => {
|
||||||
prev[`process.env.${next}`] = JSON.stringify(envConfig[next]);
|
prev[`process.env.${next}`] = JSON.stringify(envConfig[next]);
|
||||||
@ -38,7 +49,16 @@ module.exports = (env, argv) => {
|
|||||||
// 确保 NODE_ENV 被正确设置
|
// 确保 NODE_ENV 被正确设置
|
||||||
envKeys['process.env.NODE_ENV'] = JSON.stringify(nodeEnv);
|
envKeys['process.env.NODE_ENV'] = JSON.stringify(nodeEnv);
|
||||||
|
|
||||||
console.log(`Building for ${nodeEnv} environment`);
|
// 直接设置 VUE_APP_API_URL
|
||||||
|
if (nodeEnv === 'testing') {
|
||||||
|
envKeys['process.env.VUE_APP_API_URL'] = JSON.stringify('https://api-dev.beefast.co');
|
||||||
|
} else if (nodeEnv === 'production') {
|
||||||
|
envKeys['process.env.VUE_APP_API_URL'] = JSON.stringify('https://api.beefast.co');
|
||||||
|
} else {
|
||||||
|
envKeys['process.env.VUE_APP_API_URL'] = JSON.stringify('http://localhost:8000');
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log('注入的环境变量:', envKeys);
|
||||||
|
|
||||||
return {
|
return {
|
||||||
mode,
|
mode,
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user