修改了router的自动构建方式
This commit is contained in:
parent
0b19246569
commit
0cc9ecd725
|
|
@ -33,7 +33,7 @@ const createEnvironmentHash = require('./webpack/persistentCache/createEnvironme
|
||||||
|
|
||||||
const oakPathTsxPlugin = require('../babel-plugin/oakPath');
|
const oakPathTsxPlugin = require('../babel-plugin/oakPath');
|
||||||
const oakRenderTsxPlugin = require('../babel-plugin/oakRender');
|
const oakRenderTsxPlugin = require('../babel-plugin/oakRender');
|
||||||
const oakRouterPlugin = require('../babel-plugin/oakRouter2');
|
// const oakRouterPlugin = require('../babel-plugin/oakRouter2');
|
||||||
const oakI18nPlugin = require('../babel-plugin/oakI18n');
|
const oakI18nPlugin = require('../babel-plugin/oakI18n');
|
||||||
const oakStylePlugin = require('../babel-plugin/oakStyle');
|
const oakStylePlugin = require('../babel-plugin/oakStyle');
|
||||||
const oakRpxToPxPlugin = require('../postcss-plugin/oakRpxToPx');
|
const oakRpxToPxPlugin = require('../postcss-plugin/oakRpxToPx');
|
||||||
|
|
@ -547,7 +547,7 @@ module.exports = function (webpackEnv) {
|
||||||
),
|
),
|
||||||
oakPathTsxPlugin,
|
oakPathTsxPlugin,
|
||||||
oakRenderTsxPlugin,
|
oakRenderTsxPlugin,
|
||||||
oakRouterPlugin,
|
// oakRouterPlugin,
|
||||||
oakI18nPlugin,
|
oakI18nPlugin,
|
||||||
// [
|
// [
|
||||||
// 'import',
|
// 'import',
|
||||||
|
|
|
||||||
23
lib/build.js
23
lib/build.js
|
|
@ -5,27 +5,34 @@ const tip_style_1 = require("./tip-style");
|
||||||
const cross_spawn_1 = tslib_1.__importDefault(require("cross-spawn"));
|
const cross_spawn_1 = tslib_1.__importDefault(require("cross-spawn"));
|
||||||
const path_1 = require("path");
|
const path_1 = require("path");
|
||||||
const makeLocale_1 = tslib_1.__importDefault(require("./makeLocale"));
|
const makeLocale_1 = tslib_1.__importDefault(require("./makeLocale"));
|
||||||
|
const makeRouter_1 = tslib_1.__importDefault(require("./makeRouter"));
|
||||||
const fs_1 = require("fs");
|
const fs_1 = require("fs");
|
||||||
async function build(cmd) {
|
async function build(cmd) {
|
||||||
if (!cmd.target) {
|
if (!cmd.target) {
|
||||||
(0, tip_style_1.Error)(`${(0, tip_style_1.error)(`Please add --target web or --target mp(wechatMp) or --target rn(native) to run the project in Web/WechatMp/ReactNative environment`)}`);
|
(0, tip_style_1.Error)(`${(0, tip_style_1.error)(`Please add --target web or --target mp(wechatMp) or --target rn(native) to run the project in Web/WechatMp/ReactNative environment`)}`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
let subdir = cmd.subDir;
|
||||||
|
if (!subdir) {
|
||||||
|
subdir = ['mp', 'wechatMp'].includes(cmd.target) ? 'wechatMp' : (['native', 'rn'].includes(cmd.target) ? 'native' : 'web');
|
||||||
|
}
|
||||||
// 先makeLocale
|
// 先makeLocale
|
||||||
(0, makeLocale_1.default)('', true);
|
(0, makeLocale_1.default)('', cmd.mode === 'development');
|
||||||
|
// 再尝试makeRouter
|
||||||
|
(0, makeRouter_1.default)({ subdir }, cmd.mode === 'development');
|
||||||
//ts类型检查 waring 还是error,
|
//ts类型检查 waring 还是error,
|
||||||
//主要web受影响,error级别的话 控制台和网页都报错,warning级别的话 控制台报错
|
//主要web受影响,error级别的话 控制台和网页都报错,warning级别的话 控制台报错
|
||||||
|
// development/staging/production
|
||||||
const TSC_COMPILE_ON_ERROR = cmd.check !== 'error';
|
const TSC_COMPILE_ON_ERROR = cmd.check !== 'error';
|
||||||
(0, tip_style_1.Success)(`${(0, tip_style_1.success)(`build ${cmd.target} environment:${cmd.mode} ${cmd.mode !== 'production'
|
(0, tip_style_1.Success)(`${(0, tip_style_1.success)(`build ${cmd.target} environment:${cmd.mode} ${['development'].includes(cmd.mode) ? `server:${!!cmd.prod}` : ''} ${['mp', 'wechatMp'].includes(cmd.target) &&
|
||||||
? `server:${!!cmd.prod}`
|
['development'].includes(cmd.mode)
|
||||||
: ''} ${cmd.target !== 'web' && cmd.mode !== 'production'
|
|
||||||
? `split:${!!cmd.split}`
|
? `split:${!!cmd.split}`
|
||||||
: ''}`)}`);
|
: ''}`)}`);
|
||||||
if (['mp', 'wechatMp'].includes(cmd.target)) {
|
if (['mp', 'wechatMp'].includes(cmd.target)) {
|
||||||
const result = cross_spawn_1.default.sync(`cross-env`, [
|
const result = cross_spawn_1.default.sync(`cross-env`, [
|
||||||
`NODE_ENV=${cmd.mode}`,
|
`NODE_ENV=${cmd.mode}`,
|
||||||
`NODE_TARGET=${cmd.target}`,
|
`NODE_TARGET=${cmd.target}`,
|
||||||
`SUB_DIR_NAME=${cmd.subDir || 'wechatMp'}`,
|
`SUB_DIR_NAME=${subdir}`,
|
||||||
`TSC_COMPILE_ON_ERROR=${TSC_COMPILE_ON_ERROR}`,
|
`TSC_COMPILE_ON_ERROR=${TSC_COMPILE_ON_ERROR}`,
|
||||||
`COMPILE_ANALYZE=${!!cmd.analyze}`,
|
`COMPILE_ANALYZE=${!!cmd.analyze}`,
|
||||||
`GENERATE_SOURCEMAP=${!!cmd.sourcemap}`,
|
`GENERATE_SOURCEMAP=${!!cmd.sourcemap}`,
|
||||||
|
|
@ -52,7 +59,7 @@ async function build(cmd) {
|
||||||
const result = cross_spawn_1.default.sync(`cross-env`, [
|
const result = cross_spawn_1.default.sync(`cross-env`, [
|
||||||
`NODE_ENV=${cmd.mode}`,
|
`NODE_ENV=${cmd.mode}`,
|
||||||
`NODE_TARGET=${cmd.target}`,
|
`NODE_TARGET=${cmd.target}`,
|
||||||
`SUB_DIR_NAME=${cmd.subDir || 'web'}`,
|
`SUB_DIR_NAME=${subdir}`,
|
||||||
`TSC_COMPILE_ON_ERROR=${TSC_COMPILE_ON_ERROR}`,
|
`TSC_COMPILE_ON_ERROR=${TSC_COMPILE_ON_ERROR}`,
|
||||||
`COMPILE_ANALYZE=${!!cmd.analyze}`,
|
`COMPILE_ANALYZE=${!!cmd.analyze}`,
|
||||||
`GENERATE_SOURCEMAP=${!!cmd.sourcemap}`,
|
`GENERATE_SOURCEMAP=${!!cmd.sourcemap}`,
|
||||||
|
|
@ -76,7 +83,7 @@ async function build(cmd) {
|
||||||
}
|
}
|
||||||
else if (['native', 'rn'].includes(cmd.target)) {
|
else if (['native', 'rn'].includes(cmd.target)) {
|
||||||
const prjDir = process.cwd();
|
const prjDir = process.cwd();
|
||||||
const cwd = (0, path_1.resolve)(prjDir, cmd.subDir || 'native');
|
const cwd = (0, path_1.resolve)(prjDir, subdir);
|
||||||
(0, fs_1.copyFileSync)((0, path_1.resolve)(prjDir, 'package.json'), (0, path_1.resolve)(cwd, 'package.json'));
|
(0, fs_1.copyFileSync)((0, path_1.resolve)(prjDir, 'package.json'), (0, path_1.resolve)(cwd, 'package.json'));
|
||||||
// rn不支持注入NODE_ENVIRONMENT这样的环境变量,cross-env没有用
|
// rn不支持注入NODE_ENVIRONMENT这样的环境变量,cross-env没有用
|
||||||
/* const result = spawn.sync(
|
/* const result = spawn.sync(
|
||||||
|
|
@ -95,7 +102,7 @@ async function build(cmd) {
|
||||||
'OAK_PLATFORM=native',
|
'OAK_PLATFORM=native',
|
||||||
`PROD=${!!cmd.prod}`,
|
`PROD=${!!cmd.prod}`,
|
||||||
'react-native',
|
'react-native',
|
||||||
'start'
|
'start',
|
||||||
].filter(Boolean), {
|
].filter(Boolean), {
|
||||||
cwd,
|
cwd,
|
||||||
stdio: 'inherit',
|
stdio: 'inherit',
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
export default function make(cmd: any, watch?: boolean): Promise<void>;
|
||||||
|
|
@ -0,0 +1,32 @@
|
||||||
|
"use strict";
|
||||||
|
Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
|
const tslib_1 = require("tslib");
|
||||||
|
const tip_style_1 = require("./tip-style");
|
||||||
|
const cross_spawn_1 = tslib_1.__importDefault(require("cross-spawn"));
|
||||||
|
async function make(cmd, watch) {
|
||||||
|
(0, tip_style_1.Success)(`${(0, tip_style_1.success)(`make router`)}`);
|
||||||
|
// node scripts/make-router.js subdir watch
|
||||||
|
const args = [require.resolve('../scripts/' + 'make-router.js'), cmd.subdir];
|
||||||
|
if (watch) {
|
||||||
|
args.push('true');
|
||||||
|
const result = (0, cross_spawn_1.default)('node', args, {
|
||||||
|
stdio: 'inherit',
|
||||||
|
shell: true,
|
||||||
|
});
|
||||||
|
(0, tip_style_1.Success)(`${(0, tip_style_1.success)(`make router执行,监控中……`)}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const result = cross_spawn_1.default.sync('node', args, {
|
||||||
|
stdio: 'inherit',
|
||||||
|
shell: true,
|
||||||
|
});
|
||||||
|
// const result2 = spawn.sync('npm -v', [], { stdio: 'inherit', shell: true });
|
||||||
|
if (result.status === 0) {
|
||||||
|
(0, tip_style_1.Success)(`${(0, tip_style_1.success)(`make router执行完成`)}`);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
(0, tip_style_1.Error)(`${(0, tip_style_1.error)(`make router执行失败`)}`);
|
||||||
|
process.exit(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
exports.default = make;
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
const subdir = process.argv[2];
|
||||||
|
const watch = process.argv[3];
|
||||||
|
const { buildRouter } = require('oak-domain/lib/compiler/routerBuilder');
|
||||||
|
buildRouter(process.cwd(), subdir, !!watch);
|
||||||
19
src/build.ts
19
src/build.ts
|
|
@ -10,6 +10,7 @@ import {
|
||||||
import spawn from 'cross-spawn';
|
import spawn from 'cross-spawn';
|
||||||
import { resolve } from 'path';
|
import { resolve } from 'path';
|
||||||
import makeLocale from './makeLocale';
|
import makeLocale from './makeLocale';
|
||||||
|
import makeRouter from './makeRouter';
|
||||||
import { copyFileSync } from 'fs';
|
import { copyFileSync } from 'fs';
|
||||||
|
|
||||||
export default async function build(cmd: any) {
|
export default async function build(cmd: any) {
|
||||||
|
|
@ -21,8 +22,16 @@ export default async function build(cmd: any) {
|
||||||
);
|
);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
let subdir = cmd.subDir;
|
||||||
|
if (!subdir) {
|
||||||
|
subdir = ['mp', 'wechatMp'].includes(cmd.target) ? 'wechatMp' : (
|
||||||
|
['native', 'rn'].includes(cmd.target) ? 'native' : 'web'
|
||||||
|
);
|
||||||
|
}
|
||||||
// 先makeLocale
|
// 先makeLocale
|
||||||
makeLocale('', true);
|
makeLocale('', cmd.mode === 'development');
|
||||||
|
// 再尝试makeRouter
|
||||||
|
makeRouter({ subdir }, cmd.mode === 'development');
|
||||||
//ts类型检查 waring 还是error,
|
//ts类型检查 waring 还是error,
|
||||||
//主要web受影响,error级别的话 控制台和网页都报错,warning级别的话 控制台报错
|
//主要web受影响,error级别的话 控制台和网页都报错,warning级别的话 控制台报错
|
||||||
// development/staging/production
|
// development/staging/production
|
||||||
|
|
@ -45,7 +54,7 @@ export default async function build(cmd: any) {
|
||||||
[
|
[
|
||||||
`NODE_ENV=${cmd.mode}`,
|
`NODE_ENV=${cmd.mode}`,
|
||||||
`NODE_TARGET=${cmd.target}`,
|
`NODE_TARGET=${cmd.target}`,
|
||||||
`SUB_DIR_NAME=${cmd.subDir || 'wechatMp'}`,
|
`SUB_DIR_NAME=${subdir}`,
|
||||||
`TSC_COMPILE_ON_ERROR=${TSC_COMPILE_ON_ERROR}`,
|
`TSC_COMPILE_ON_ERROR=${TSC_COMPILE_ON_ERROR}`,
|
||||||
`COMPILE_ANALYZE=${!!cmd.analyze}`,
|
`COMPILE_ANALYZE=${!!cmd.analyze}`,
|
||||||
`GENERATE_SOURCEMAP=${!!cmd.sourcemap}`,
|
`GENERATE_SOURCEMAP=${!!cmd.sourcemap}`,
|
||||||
|
|
@ -78,7 +87,7 @@ export default async function build(cmd: any) {
|
||||||
[
|
[
|
||||||
`NODE_ENV=${cmd.mode}`,
|
`NODE_ENV=${cmd.mode}`,
|
||||||
`NODE_TARGET=${cmd.target}`,
|
`NODE_TARGET=${cmd.target}`,
|
||||||
`SUB_DIR_NAME=${cmd.subDir || 'web'}`,
|
`SUB_DIR_NAME=${subdir}`,
|
||||||
`TSC_COMPILE_ON_ERROR=${TSC_COMPILE_ON_ERROR}`,
|
`TSC_COMPILE_ON_ERROR=${TSC_COMPILE_ON_ERROR}`,
|
||||||
`COMPILE_ANALYZE=${!!cmd.analyze}`,
|
`COMPILE_ANALYZE=${!!cmd.analyze}`,
|
||||||
`GENERATE_SOURCEMAP=${!!cmd.sourcemap}`,
|
`GENERATE_SOURCEMAP=${!!cmd.sourcemap}`,
|
||||||
|
|
@ -86,7 +95,7 @@ export default async function build(cmd: any) {
|
||||||
!!cmd.memoryLimit && `MEMORY_LIMIT=${cmd.memoryLimit}`,
|
!!cmd.memoryLimit && `MEMORY_LIMIT=${cmd.memoryLimit}`,
|
||||||
`node`,
|
`node`,
|
||||||
cmd.memoryLimit && `--max_old_space_size=${cmd.memoryLimit}`,
|
cmd.memoryLimit && `--max_old_space_size=${cmd.memoryLimit}`,
|
||||||
resolve(
|
require.resolve(
|
||||||
`../scripts/${
|
`../scripts/${
|
||||||
cmd.mode === 'production'
|
cmd.mode === 'production'
|
||||||
? 'build-web.js'
|
? 'build-web.js'
|
||||||
|
|
@ -106,7 +115,7 @@ export default async function build(cmd: any) {
|
||||||
}
|
}
|
||||||
} else if (['native', 'rn'].includes(cmd.target)) {
|
} else if (['native', 'rn'].includes(cmd.target)) {
|
||||||
const prjDir = process.cwd();
|
const prjDir = process.cwd();
|
||||||
const cwd = resolve(prjDir, cmd.subDir || 'native');
|
const cwd = resolve(prjDir, subdir);
|
||||||
copyFileSync(
|
copyFileSync(
|
||||||
resolve(prjDir, 'package.json'),
|
resolve(prjDir, 'package.json'),
|
||||||
resolve(cwd, 'package.json')
|
resolve(cwd, 'package.json')
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
import {
|
||||||
|
Success,
|
||||||
|
Error,
|
||||||
|
error,
|
||||||
|
primary,
|
||||||
|
success,
|
||||||
|
warn,
|
||||||
|
Warn,
|
||||||
|
} from './tip-style';
|
||||||
|
import spawn from 'cross-spawn';
|
||||||
|
|
||||||
|
export default async function make(cmd: any, watch?: boolean) {
|
||||||
|
Success(`${success(`make router`)}`);
|
||||||
|
// node scripts/make-router.js subdir watch
|
||||||
|
const args = [require.resolve('../scripts/' + 'make-router.js'), cmd.subdir];
|
||||||
|
if (watch) {
|
||||||
|
args.push('true');
|
||||||
|
const result = spawn(
|
||||||
|
'node',
|
||||||
|
args,
|
||||||
|
{
|
||||||
|
stdio: 'inherit',
|
||||||
|
shell: true,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
Success(`${success(`make router执行,监控中……`)}`);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const result = spawn.sync(
|
||||||
|
'node',
|
||||||
|
args,
|
||||||
|
{
|
||||||
|
stdio: 'inherit',
|
||||||
|
shell: true,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
// const result2 = spawn.sync('npm -v', [], { stdio: 'inherit', shell: true });
|
||||||
|
|
||||||
|
if (result.status === 0) {
|
||||||
|
Success(`${success(`make router执行完成`)}`);
|
||||||
|
} else {
|
||||||
|
Error(`${error(`make router执行失败`)}`);
|
||||||
|
process.exit(-1);
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue