rn run 支持staging环境命令

This commit is contained in:
wkj 2024-01-07 11:00:57 +08:00
parent 35f4ffacb9
commit ccceb306c0
5 changed files with 49 additions and 15 deletions

View File

@ -118,7 +118,7 @@ async function create(dirName, cmd) {
const { name, version, title, description } = await inquirer_1.default.prompt(prompt);
// 获取package.json内容
const packageJson = (0, template_1.packageJsonContent)({
name: DEFAULT_PROJECT_NAME,
name: DEFAULT_PROJECT_NAME, // 后面再统一rename
version,
description,
cliName: config_1.CLI_NAME,

View File

@ -8,7 +8,7 @@ const fs_1 = require("fs");
async function run(options) {
const prjDir = process.cwd();
const cwd = (0, path_1.resolve)(process.cwd(), options.subDir || 'native');
const mode = options.mode || 'development'; //development/staging/production
const mode = (options.mode || 'development');
if (options.platform === 'ios') {
(0, fs_1.copyFileSync)((0, path_1.resolve)(prjDir, 'package.json'), (0, path_1.resolve)(cwd, 'package.json'));
(0, tip_style_1.Success)(`${(0, tip_style_1.primary)('run react-native run-ios')}`);
@ -28,16 +28,26 @@ async function run(options) {
else if (options.platform === 'android') {
(0, tip_style_1.Success)(`${(0, tip_style_1.primary)('run react-native run-android')}`);
(0, fs_1.copyFileSync)((0, path_1.resolve)(prjDir, 'package.json'), (0, path_1.resolve)(cwd, 'package.json'));
const result = cross_spawn_1.default.sync('cross-env', [
`NODE_ENV=${mode}`,
'react-native',
'run-android',
mode === 'production' ? '--variant=release' : '',
].filter(Boolean), {
cwd,
stdio: 'inherit',
shell: true,
});
const variantMap = {
development: 'debug',
staging: 'staging',
production: 'release',
};
const variant = variantMap[mode];
const result = cross_spawn_1.default.sync(
'cross-env',
[
`NODE_ENV=${mode}`,
'react-native',
'run-android',
`--variant=${variant}`,
].filter(Boolean),
{
cwd,
stdio: 'inherit',
shell: true,
}
);
if (result.status === 0) {
(0, tip_style_1.Success)(`${(0, tip_style_1.success)(`react-native run-android success`)}`);
}

View File

@ -24,7 +24,7 @@ async function startup(path, contextBuilder, connector, omitWatchers, omitTimers
path: connector.getSubscribeRouter(),
};
socketOption.cors = {
origin: '*',
origin: '*', // 允许跨域访问
allowedHeaders: ["oak-cxt"],
};
const io = new socket_io_1.Server(httpServer, socketOption);

View File

@ -13,7 +13,7 @@ import { copyFileSync, unlinkSync } from 'fs';
export default async function run(options: any): Promise<void> {
const prjDir = process.cwd();
const cwd = resolve(process.cwd(), options.subDir || 'native');
const mode = options.mode || 'development'; //development/staging/production
const mode = (options.mode || 'development') as 'development' | 'staging' |'production';
if (options.platform === 'ios') {
copyFileSync(resolve(prjDir, 'package.json'), resolve(cwd, 'package.json'));
Success(`${primary('run react-native run-ios')}`);
@ -37,13 +37,19 @@ export default async function run(options: any): Promise<void> {
else if (options.platform === 'android') {
Success(`${primary('run react-native run-android')}`);
copyFileSync(resolve(prjDir, 'package.json'), resolve(cwd, 'package.json'));
const variantMap = {
development: 'debug',
staging: 'staging',
production: 'release',
};
const variant = variantMap[mode];
const result = spawn.sync(
'cross-env',
[
`NODE_ENV=${mode}`,
'react-native',
'run-android',
mode === 'production' ? '--variant=release' : '',
`--variant=${variant}`,
].filter(Boolean),
{
cwd,

View File

@ -0,0 +1,18 @@
/**
* App也必须输入访问的目标域名domain和system的关系来判定appId
*/
const env = process.env.NODE_ENV;
const URL = {
// 服务器地址数组和application的domain中要保持一致以确定application
development: 'localhost',
staging: 'test.com',
production: 'test.com',
};
const host = URL[env];
export {
host,
};