提交 5ab12ddb 作者: yueyang.lv

feat(私有部署): 新增私有部署打包启动方式

通过环境变量 REACT_APP_SATURN_ENV 是否为 private 来控制是否嵌入土星云业务组件
上级 94e86441
......@@ -49,10 +49,13 @@
"chart.js": "^2.9.3"
},
"scripts": {
"start": "PORT=5005 react-app-rewired start",
"server_install": "yarn --registry=https://registry.npmjs.org/",
"server_build": "react-app-rewired build",
"build": "react-app-rewired build",
"start": "PORT=5005 REACT_APP_SATURN_ENV=tenant react-app-rewired start",
"start:private": "PORT=5005 REACT_APP_SATURN_ENV=private react-app-rewired start",
"server_build": "npm run build",
"server_build:private": "npm run build:private",
"build": "REACT_APP_SATURN_ENV=tenant react-app-rewired build",
"build:private": "REACT_APP_SATURN_ENV=private react-app-rewired build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
......
......@@ -21,7 +21,7 @@ import { hot } from "react-hot-loader/root";
import ProtectedRoute from "./ProtectedRoutes";
import LoadingComponent from "./common/LoadingComponent";
import AppConsole from "./screens/Console/ConsoleKBar";
import { fullRouters } from "./screens/Console/Saturn/routes";
import { fullRouters } from "./screens/Console/Saturn";
const Login = React.lazy(() => import("./screens/LoginPage/LoginPage"));
const LoginCallback = React.lazy(
......
/// <reference types="react-scripts" />
declare namespace NodeJS {
interface ProcessEnv {
readonly NODE_ENV: "development" | "production" | "test";
readonly PUBLIC_URL: string;
readonly REACT_APP_SATURN_ENV?: "private" | "tenant";
}
}
......@@ -8,7 +8,7 @@ import { UserInfo } from "./services/interface";
import { getUserInfo } from "./services";
import menu from "./menu";
import routes from "./routes";
import routes, { fullRouters as saturnFullRouters } from "./routes";
interface SaturnAppProps {
history: History;
......@@ -18,9 +18,6 @@ interface SaturnRouteRule extends IRouteRule {
props: Record<string, any>;
}
export const saturnMenu = menu;
export const saturnRoutes = routes;
function SaturnApp({ history }: SaturnAppProps) {
const [userInfo, setUserInfo] = useState<UserInfo>();
const initUserData = () => {
......@@ -56,4 +53,16 @@ function SaturnApp({ history }: SaturnAppProps) {
);
}
export default SaturnApp;
/** 私有部署版本无需注入 */
function SaturnPrivateApp(props: any) {
return null;
}
const isPrivate = process.env.REACT_APP_SATURN_ENV === "private";
const fullRouters = isPrivate ? [] : saturnFullRouters;
const saturnMenu = isPrivate ? [] : menu;
export { fullRouters, saturnMenu };
export default isPrivate ? SaturnPrivateApp : SaturnApp;
......@@ -357,10 +357,6 @@ const Login = ({
});
};
// 关闭此页,使用自有登录页
toLoginPage({ replace: true, callbackUrl: false });
return null;
useEffect(() => {
if (loadingFetchConfiguration) {
api
......@@ -582,4 +578,15 @@ const Login = ({
);
};
export default connector(withStyles(styles)(Login));
/** 非私有部署时关闭这个登录页 */
const TenantLogin = () => {
// 关闭此页,使用自有登录页
toLoginPage({ replace: true, callbackUrl: false });
return null;
};
export default connector(
withStyles(styles)(
process.env.REACT_APP_SATURN_ENV === "private" ? Login : TenantLogin
)
);
......@@ -12,6 +12,9 @@ export const toLoginPage = (options?: ToLoginPageOptions): void => {
const queryStr = callbackUrl ? `?callbackUrl=${callbackUrl}` : "";
let url = `/saturn/login${queryStr}`;
if (process.env.REACT_APP_SATURN_ENV === "private") {
url = `/login${queryStr}`;
}
if (process.env.NODE_ENV === "production") {
let loginUrl = `https://xxyy.co/#/login${queryStr}`;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论