From d5cb47448033c8cabb853adaa04e81a74b7df605 Mon Sep 17 00:00:00 2001 From: wkj <278599135@.com> Date: Mon, 27 May 2024 17:26:10 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4PROD=E5=8F=82=E6=95=B0=20?= =?UTF-8?q?=E7=BC=96=E8=AF=91=E6=94=AF=E6=8C=81=E5=B8=A6sourcemap=E6=A8=A1?= =?UTF-8?q?=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- config/mp/env.js | 1 - config/mp/paths.js | 2 +- config/mp/webpack.config.js | 26 +++++++++++--------------- config/native/metro.config.js | 2 +- config/web/env.js | 1 - config/web/paths.js | 2 +- lib/build.js | 3 --- lib/index.js | 3 +-- lib/server/initialize.d.ts | 2 +- lib/server/initialize.js | 4 ++-- lib/template.js | 2 ++ src/build.ts | 3 --- src/index.ts | 3 +-- src/server/initialize.ts | 9 +++++---- src/template.ts | 2 ++ 15 files changed, 28 insertions(+), 37 deletions(-) diff --git a/config/mp/env.js b/config/mp/env.js index 1e78ae6..44348df 100644 --- a/config/mp/env.js +++ b/config/mp/env.js @@ -58,7 +58,6 @@ function getClientEnvironment() { NODE_ENV: process.env.NODE_ENV || 'development', // process.env.OAK_PLATFORM: wechatMp | web | node OAK_PLATFORM: 'wechatMp', - PROD: process.env.PROD, OAK_DEV_MODE: process.env.OAK_DEV_MODE || 'server', } ); diff --git a/config/mp/paths.js b/config/mp/paths.js index 5f2bee9..145108f 100644 --- a/config/mp/paths.js +++ b/config/mp/paths.js @@ -18,7 +18,7 @@ let moduleFileExtensions = [ 'ts', ]; -if (process.env.PROD === 'true' || process.env.OAK_DEV_MODE === 'server') { +if (process.env.OAK_DEV_MODE === 'server') { moduleFileExtensions = [ 'server.js', 'server.ts', diff --git a/config/mp/webpack.config.js b/config/mp/webpack.config.js index 84b59cb..d37c6cb 100644 --- a/config/mp/webpack.config.js +++ b/config/mp/webpack.config.js @@ -45,7 +45,7 @@ module.exports = function (webpackEnv) { // staging 把mode改为none,其他跟production一样 const isEnvStaging = webpackEnv === 'staging'; const isEnvDevelopment = webpackEnv === 'development'; - const isEnvProduction = webpackEnv === 'production' || isEnvStaging; + const isEnvProduction = webpackEnv === 'production'; const oakFileLoader = (ext = '[ext]') => { return { @@ -95,12 +95,13 @@ module.exports = function (webpackEnv) { ? 'production' : isEnvDevelopment && 'development', // Stop compilation early in production - bail: isEnvProduction, - devtool: isEnvProduction - ? shouldUseSourceMap - ? 'source-map' - : false - : isEnvDevelopment && 'cheap-module-source-map', + bail: isEnvProduction || isEnvStaging, + devtool: + isEnvProduction || isEnvStaging + ? shouldUseSourceMap + ? 'source-map' + : false + : isEnvDevelopment && 'cheap-module-source-map', entry: { app: paths.appIndexJs, }, @@ -188,7 +189,7 @@ module.exports = function (webpackEnv) { // 标记未被使用的代码 usedExports: true, // 删除 usedExports 标记的未使用的代码 - minimize: isEnvProduction, + minimize: isEnvProduction || isEnvStaging, minimizer: [ new TerserPlugin({ extractComments: false, @@ -251,8 +252,6 @@ module.exports = function (webpackEnv) { loader: 'babel-loader', options: { plugins: [oakI18nPlugin, oakPathPlugin], - //开启缓存 - // cacheDirectory: false, }, }, { @@ -265,8 +264,6 @@ module.exports = function (webpackEnv) { loader: 'babel-loader', options: { plugins: [oakI18nPlugin, oakPathPlugin], - //开启缓存 - // cacheDirectory: false, }, }, { @@ -293,7 +290,6 @@ module.exports = function (webpackEnv) { appSrcPath: paths.appSrc, appRootPath: paths.appRootPath, appRootSrcPath: paths.appRootSrc, - cacheDirectory: false, }, }, ], @@ -323,9 +319,9 @@ module.exports = function (webpackEnv) { include: ['project.config.json', 'sitemap.json'], debugPanel: { name: 'oak-debugPanel', - show: !isEnvProduction, + show: !(isEnvProduction || isEnvStaging), }, - split: isEnvProduction ? true : false, + split: isEnvProduction || isEnvStaging ? true : false, }), new webpack.DefinePlugin(env.stringified), new StylelintPlugin({ diff --git a/config/native/metro.config.js b/config/native/metro.config.js index 12e13b7..28c621c 100644 --- a/config/native/metro.config.js +++ b/config/native/metro.config.js @@ -7,7 +7,7 @@ const watchFolders = [ let moduleFileExtensions = ['js', 'ts', 'jsx', 'tsx', 'less', 'json', 'svg']; -if (process.env.PROD === 'true' || process.env.OAK_DEV_MODE === 'server') { +if (process.env.OAK_DEV_MODE === 'server') { moduleFileExtensions = [ 'server.js', 'server.ts', diff --git a/config/web/env.js b/config/web/env.js index 5b4c269..70a33b4 100644 --- a/config/web/env.js +++ b/config/web/env.js @@ -90,7 +90,6 @@ function getClientEnvironment(publicUrl) { FAST_REFRESH: process.env.FAST_REFRESH !== 'false', // process.env.OAK_PLATFORM: wechatMp | web | native OAK_PLATFORM: 'web', - PROD: process.env.PROD, OAK_DEV_MODE: process.env.OAK_DEV_MODE || 'server', } ); diff --git a/config/web/paths.js b/config/web/paths.js index 9d51843..b70eadc 100644 --- a/config/web/paths.js +++ b/config/web/paths.js @@ -41,7 +41,7 @@ let moduleFileExtensions = [ 'jsx', ]; -if (process.env.PROD === 'true' || process.env.OAK_DEV_MODE === 'server') { +if (process.env.OAK_DEV_MODE === 'server') { moduleFileExtensions = [ 'server.mjs', 'server.js', diff --git a/lib/build.js b/lib/build.js index 6212e89..5ea5349 100644 --- a/lib/build.js +++ b/lib/build.js @@ -45,7 +45,6 @@ async function build(cmd) { `SUB_DIR_NAME=${subdir}`, `COMPILE_ANALYZE=${!!cmd.analyze}`, `GENERATE_SOURCEMAP=${!!cmd.sourcemap}`, - `PROD=${!!cmd.prod}`, !!cmd.memoryLimit && `MEMORY_LIMIT=${cmd.memoryLimit}`, `node`, cmd.memoryLimit && `--max_old_space_size=${cmd.memoryLimit}`, @@ -75,7 +74,6 @@ async function build(cmd) { `SUB_DIR_NAME=${subdir}`, `COMPILE_ANALYZE=${!!cmd.analyze}`, `GENERATE_SOURCEMAP=${!!cmd.sourcemap}`, - `PROD=${!!cmd.prod}`, `PORT=${port || 3000}`, !!cmd.memoryLimit && `MEMORY_LIMIT=${cmd.memoryLimit}`, `node`, @@ -131,7 +129,6 @@ async function build(cmd) { result = cross_spawn_1.default.sync(`cross-env`, [ `NODE_ENV=${mode}`, 'OAK_PLATFORM=native', - `PROD=${!!cmd.prod}`, `OAK_DEV_MODE=${devMode}`, 'react-native', 'start', diff --git a/lib/index.js b/lib/index.js index 9b6feb0..6a3c91f 100755 --- a/lib/index.js +++ b/lib/index.js @@ -59,9 +59,8 @@ commander_1.default .action(makeDependency_1.default); commander_1.default .command('start') - .option('--sourceMap', 'sourceMap') + .option('--sourcemap', 'sourcemap') .option('--analyze', 'analyze') - .option('--prod', 'prod') .option('--memoryLimit ', 'memoryLimit of node') .option('-t, --target ', 'target') .option('-m, --mode ', 'mode') diff --git a/lib/server/initialize.d.ts b/lib/server/initialize.d.ts index 0823875..964ab37 100644 --- a/lib/server/initialize.d.ts +++ b/lib/server/initialize.d.ts @@ -2,4 +2,4 @@ import { EntityDict } from 'oak-domain/lib/types'; import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain'; import { BackendRuntimeContext } from 'oak-frontend-base/lib/context/BackendRuntimeContext'; -export declare function initialize>(path: string, dropIfExists?: boolean): Promise; +export declare function initialize>(path: string): Promise; diff --git a/lib/server/initialize.js b/lib/server/initialize.js index 33edcc1..90f692b 100644 --- a/lib/server/initialize.js +++ b/lib/server/initialize.js @@ -3,10 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true }); exports.initialize = void 0; /// const oak_backend_base_1 = require("oak-backend-base"); -async function initialize(path, dropIfExists) { +async function initialize(path) { const appLoader = new oak_backend_base_1.AppLoader(path); await appLoader.mount(true); - await appLoader.initialize(dropIfExists); + await appLoader.initialize(); await appLoader.unmount(); console.log('data initialized'); } diff --git a/lib/template.js b/lib/template.js index 345c02b..2db50bf 100644 --- a/lib/template.js +++ b/lib/template.js @@ -72,8 +72,10 @@ function packageJsonContent({ name, version, description, cliName, cliBinName, i "start:native": "${cliBinName} start --target rn --mode development --devMode frontend", "start:native:server": "${cliBinName} start --target rn --mode development", "build:web:staging": "${cliBinName} build --target web --mode staging", + "build-sourcemap:web:staging": "${cliBinName} build --target web --mode staging --sourcemap", "build-analyze:web:staging": "${cliBinName} build --target web --mode staging --analyze", "build:web": "${cliBinName} build --target web --mode production", + "build-sourcemap:web": "${cliBinName} build --target web --mode production --sourcemap", "build-analyze:web": "${cliBinName} build --target web --mode production --analyze", "build-sourcemap-analyze:web": "${cliBinName} build --target web --mode production --sourcemap --analyze", "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && npm run copy-config-json", diff --git a/src/build.ts b/src/build.ts index fa27c1e..f85e8b9 100644 --- a/src/build.ts +++ b/src/build.ts @@ -69,7 +69,6 @@ export default async function build(cmd: any) { `SUB_DIR_NAME=${subdir}`, `COMPILE_ANALYZE=${!!cmd.analyze}`, `GENERATE_SOURCEMAP=${!!cmd.sourcemap}`, - `PROD=${!!cmd.prod}`, !!cmd.memoryLimit && `MEMORY_LIMIT=${cmd.memoryLimit}`, `node`, cmd.memoryLimit && `--max_old_space_size=${cmd.memoryLimit}`, @@ -101,7 +100,6 @@ export default async function build(cmd: any) { `SUB_DIR_NAME=${subdir}`, `COMPILE_ANALYZE=${!!cmd.analyze}`, `GENERATE_SOURCEMAP=${!!cmd.sourcemap}`, - `PROD=${!!cmd.prod}`, `PORT=${port || 3000}`, !!cmd.memoryLimit && `MEMORY_LIMIT=${cmd.memoryLimit}`, `node`, @@ -168,7 +166,6 @@ export default async function build(cmd: any) { [ `NODE_ENV=${mode}`, 'OAK_PLATFORM=native', - `PROD=${!!cmd.prod}`, `OAK_DEV_MODE=${devMode}`, 'react-native', 'start', diff --git a/src/index.ts b/src/index.ts index 3607da2..90698c6 100644 --- a/src/index.ts +++ b/src/index.ts @@ -68,9 +68,8 @@ program program .command('start') - .option('--sourceMap', 'sourceMap') + .option('--sourcemap', 'sourcemap') .option('--analyze', 'analyze') - .option('--prod', 'prod') .option('--memoryLimit ', 'memoryLimit of node') .option('-t, --target ', 'target') .option('-m, --mode ', 'mode') diff --git a/src/server/initialize.ts b/src/server/initialize.ts index 0fc6869..33475af 100644 --- a/src/server/initialize.ts +++ b/src/server/initialize.ts @@ -4,12 +4,13 @@ import { EntityDict } from 'oak-domain/lib/types'; import { EntityDict as BaseEntityDict } from 'oak-domain/lib/base-app-domain'; import { BackendRuntimeContext } from 'oak-frontend-base/lib/context/BackendRuntimeContext'; -export async function initialize>( - path: string, - dropIfExists?: boolean) { +export async function initialize< + ED extends EntityDict & BaseEntityDict, + Cxt extends BackendRuntimeContext +>(path: string) { const appLoader = new AppLoader(path); await appLoader.mount(true); - await appLoader.initialize(dropIfExists); + await appLoader.initialize(); await appLoader.unmount(); console.log('data initialized'); } \ No newline at end of file diff --git a/src/template.ts b/src/template.ts index 9747eda..abdcf1b 100644 --- a/src/template.ts +++ b/src/template.ts @@ -90,8 +90,10 @@ export function packageJsonContent({ "start:native": "${cliBinName} start --target rn --mode development --devMode frontend", "start:native:server": "${cliBinName} start --target rn --mode development", "build:web:staging": "${cliBinName} build --target web --mode staging", + "build-sourcemap:web:staging": "${cliBinName} build --target web --mode staging --sourcemap", "build-analyze:web:staging": "${cliBinName} build --target web --mode staging --analyze", "build:web": "${cliBinName} build --target web --mode production", + "build-sourcemap:web": "${cliBinName} build --target web --mode production --sourcemap", "build-analyze:web": "${cliBinName} build --target web --mode production --analyze", "build-sourcemap-analyze:web": "${cliBinName} build --target web --mode production --sourcemap --analyze", "build": "tsc -p tsconfig.build.json && tsc-alias -p tsconfig.build.json && npm run copy-config-json",