From bfa5d14e007307d61413d6b969644d26e87afe1a Mon Sep 17 00:00:00 2001 From: pqcqaq <905739777@qq.com> Date: Sun, 27 Oct 2024 13:39:48 +0800 Subject: [PATCH] =?UTF-8?q?build=E5=92=8C=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/CdnConfig.d.ts | 15 +++ lib/CdnConfig.js | 2 + lib/build.js | 2 +- lib/clean.js | 2 +- lib/create.js | 17 ++-- lib/file-handle.d.ts | 3 +- lib/file-handle.js | 46 +++++---- lib/makeDependency.js | 2 +- lib/makeDomain.js | 2 +- lib/makeLocale.js | 2 +- lib/makeRouter.js | 2 +- lib/rename.js | 5 +- lib/run.js | 2 +- lib/server/initialize.d.ts | 1 - lib/server/initialize.js | 3 +- lib/server/start.d.ts | 1 - lib/server/start.js | 3 +- lib/template.js | 185 ++++++++++++++++++++----------------- lib/utils.js | 15 ++- 19 files changed, 171 insertions(+), 139 deletions(-) create mode 100644 lib/CdnConfig.d.ts create mode 100644 lib/CdnConfig.js diff --git a/lib/CdnConfig.d.ts b/lib/CdnConfig.d.ts new file mode 100644 index 0000000..0a5429e --- /dev/null +++ b/lib/CdnConfig.d.ts @@ -0,0 +1,15 @@ +export type CdnConfig = { + from: string | string[]; + module: { + [name: string]: ModuleConfig; + }; + timeout: number; + retry: number; +}; +export type ModuleConfig = { + scope: string; + version: string; + js: string; + css?: string; + direct?: boolean; +}; diff --git a/lib/CdnConfig.js b/lib/CdnConfig.js new file mode 100644 index 0000000..c8ad2e5 --- /dev/null +++ b/lib/CdnConfig.js @@ -0,0 +1,2 @@ +"use strict"; +Object.defineProperty(exports, "__esModule", { value: true }); diff --git a/lib/build.js b/lib/build.js index 4db4245..80f9b59 100644 --- a/lib/build.js +++ b/lib/build.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = build; const tslib_1 = require("tslib"); const tip_style_1 = require("./tip-style"); const cross_spawn_1 = tslib_1.__importDefault(require("cross-spawn")); @@ -150,4 +151,3 @@ async function build(cmd) { (0, tip_style_1.Error)(`${(0, tip_style_1.error)(`target could only be web or mp(wechatMp) or rn(native)`)}`); } } -exports.default = build; diff --git a/lib/clean.js b/lib/clean.js index b6b057e..5e0e07f 100644 --- a/lib/clean.js +++ b/lib/clean.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = run; const tslib_1 = require("tslib"); const tip_style_1 = require("./tip-style"); const cross_spawn_1 = tslib_1.__importDefault(require("cross-spawn")); @@ -48,4 +49,3 @@ async function run(options) { process.exit(-1); } } -exports.default = run; diff --git a/lib/create.js b/lib/create.js index 814e71c..63b20ac 100644 --- a/lib/create.js +++ b/lib/create.js @@ -1,6 +1,7 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.update = exports.create = void 0; +exports.create = create; +exports.update = update; const tslib_1 = require("tslib"); const ts = tslib_1.__importStar(require("typescript")); const fs_1 = require("fs"); @@ -188,7 +189,8 @@ async function create(dirName, cmd) { // 小程序项目根路径 const weChatMpRootPath = `${rootPath}/wechatMp`; // 被复制的文件夹路径 - const currentPath = (0, path_1.join)(__dirname, '..', 'template'); + const emptyTemplatePath = (0, path_1.join)(__dirname, '..', 'template'); + const examplePath = (0, path_1.join)(__dirname, '..', 'templateExample'); //检查项目名是否存在 checkProjectName(dirName); try { @@ -209,11 +211,11 @@ async function create(dirName, cmd) { // 复制项目文件 if (isModule) { // 模块化的项目,只拷贝src和typings目录 - (0, file_handle_1.copyFolder)((0, path_1.join)(currentPath, 'src'), (0, path_1.join)(rootPath, 'src')); - (0, file_handle_1.copyFolder)((0, path_1.join)(currentPath, 'typings'), (0, path_1.join)(rootPath, 'typings')); + (0, file_handle_1.copyFolder)((0, path_1.join)(emptyTemplatePath, 'src'), (0, path_1.join)(rootPath, 'src')); + (0, file_handle_1.copyFolder)((0, path_1.join)(emptyTemplatePath, 'typings'), (0, path_1.join)(rootPath, 'typings')); } else { - (0, file_handle_1.copyFolder)(currentPath, rootPath); + (0, file_handle_1.copyFolder)(emptyTemplatePath, rootPath); await createWechatMpBoilplate(weChatMpRootPath, isDev); await createWebBoilplate(webRootPath, isDev); /* if (!shell.which('npm')) { @@ -239,7 +241,7 @@ async function create(dirName, cmd) { } // 获取package.json内容 const packageJson = (0, template_1.packageJsonContent)({ - name: DEFAULT_PROJECT_NAME, + name: DEFAULT_PROJECT_NAME, // 后面再统一rename version, description, cliName: config_1.CLI_NAME, @@ -253,6 +255,7 @@ async function create(dirName, cmd) { (0, rename_1.renameProject)(rootPath, name, title, DEFAULT_PROJECT_NAME, DEFAULT_PROJECT_TITLE); if (example) { // todo: copy template example files + (0, file_handle_1.copyFolder)(examplePath, rootPath, true); } (0, tip_style_1.Success)(`${(0, tip_style_1.success)(`Ok, type 'npm install' to install libs, then start!`)}`); } @@ -261,7 +264,6 @@ async function create(dirName, cmd) { (0, tip_style_1.Error)((0, tip_style_1.error)(err)); } } -exports.create = create; async function update(dirName, subDirName, cmd) { const isDev = cmd.dev ? true : false; try { @@ -288,4 +290,3 @@ async function update(dirName, subDirName, cmd) { console.error((0, tip_style_1.error)(err.message)); } } -exports.update = update; diff --git a/lib/file-handle.d.ts b/lib/file-handle.d.ts index 50447af..8c3c1bf 100644 --- a/lib/file-handle.d.ts +++ b/lib/file-handle.d.ts @@ -1,5 +1,3 @@ -/// -/// import { PathLike } from 'fs'; import { checkFileExistsAndCreateType } from './enum'; /** @@ -45,6 +43,7 @@ export declare function readFile(path: string | PathLike, options?: { * @export * @param {PathLike} currentDir * @param {PathLike} targetDir + * @param {boolean} [overwrite=false] 是否覆盖已存在的文件 */ export declare function copyFolder(currentDir: PathLike, targetDir: PathLike, overwrite?: boolean): void; /** diff --git a/lib/file-handle.js b/lib/file-handle.js index b38eecc..3e5b805 100644 --- a/lib/file-handle.js +++ b/lib/file-handle.js @@ -1,6 +1,15 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.checkFileExistsAndCreate = exports.checkFileExists = exports.copyFolder = exports.readFile = exports.writeFile = exports.deleteFolderRecursive = exports.parseJsonFile = exports.parseJsonFiles = exports.readDirGetFile = exports.readDirPath = void 0; +exports.readDirPath = readDirPath; +exports.readDirGetFile = readDirGetFile; +exports.parseJsonFiles = parseJsonFiles; +exports.parseJsonFile = parseJsonFile; +exports.deleteFolderRecursive = deleteFolderRecursive; +exports.writeFile = writeFile; +exports.readFile = readFile; +exports.copyFolder = copyFolder; +exports.checkFileExists = checkFileExists; +exports.checkFileExistsAndCreate = checkFileExistsAndCreate; const fs_1 = require("fs"); const path_1 = require("path"); const enum_1 = require("./enum"); @@ -25,7 +34,6 @@ function readDirPath(entry) { } return pathList; } -exports.readDirPath = readDirPath; /** * @name 读取指定目录的文件(不进行深度遍历,只获取根目录) * @export @@ -36,7 +44,6 @@ function readDirGetFile(entry) { const dirInfo = (0, fs_1.readdirSync)(entry); return dirInfo; } -exports.readDirGetFile = readDirGetFile; /** * @name 解析json文件(数组) * @export @@ -51,7 +58,6 @@ function parseJsonFiles(arr) { } return result; } -exports.parseJsonFiles = parseJsonFiles; /** * @name 解析单个文件json * @export @@ -67,7 +73,6 @@ function parseJsonFile(file) { return; } } -exports.parseJsonFile = parseJsonFile; /** * @name 删除文件夹 * @export @@ -97,7 +102,6 @@ function deleteFolderRecursive(entry) { // console.log("文件夹不存在"); } } -exports.deleteFolderRecursive = deleteFolderRecursive; ; function writeFile(path, data) { try { @@ -108,7 +112,6 @@ function writeFile(path, data) { (0, tip_style_1.Error)((0, tip_style_1.error)('文件写入失败')); } } -exports.writeFile = writeFile; function readFile(path, options) { try { const data = (0, fs_1.readFileSync)(path, options); @@ -119,45 +122,49 @@ function readFile(path, options) { (0, tip_style_1.Error)((0, tip_style_1.error)('文件读取失败')); } } -exports.readFile = readFile; /** * @name 拷贝文件夹 * @export * @param {PathLike} currentDir * @param {PathLike} targetDir + * @param {boolean} [overwrite=false] 是否覆盖已存在的文件 */ -function copyFolder(currentDir, targetDir, overwrite) { +function copyFolder(currentDir, targetDir, overwrite = false) { function handleFolder(currentDir, targetDir) { const files = (0, fs_1.readdirSync)(currentDir, { withFileTypes: true }); for (let file of files) { - // 拼接文件绝对路径 - const copyCurrentFileInfo = currentDir + '/' + file.name; - const copyTargetFileInfo = targetDir + '/' + file.name; - // 判断文件是否存在 + const copyCurrentFileInfo = (0, path_1.join)(currentDir.toString(), file.name); + const copyTargetFileInfo = (0, path_1.join)(targetDir.toString(), file.name); const readCurrentFile = (0, fs_1.existsSync)(copyCurrentFileInfo); const readTargetFile = (0, fs_1.existsSync)(copyTargetFileInfo); if (!readCurrentFile) { + console.error(`操作失败,待拷贝的源路径${copyCurrentFileInfo}不存在`); throw new global.Error(`操作失败,待拷贝的源路径${copyCurrentFileInfo}不存在`); } else if (file.isFile() && readTargetFile && !overwrite) { - throw new global.Error(`操作失败,待拷贝的目标文件${copyTargetFileInfo}已经存在`); + // console.warn(`目标文件${copyTargetFileInfo}已存在,跳过复制`); + continue; } else { - // 判断是否为文件,如果为文件则复制,文件夹则递归 if (file.isFile()) { const readStream = (0, fs_1.createReadStream)(copyCurrentFileInfo); const writeStream = (0, fs_1.createWriteStream)(copyTargetFileInfo); readStream.pipe(writeStream); + // console.log(`复制文件: ${copyCurrentFileInfo} -> ${copyTargetFileInfo}`); } else { try { (0, fs_1.accessSync)((0, path_1.join)(copyTargetFileInfo, '..'), fs_1.constants.W_OK); + if (!(0, fs_1.existsSync)(copyTargetFileInfo)) { + (0, fs_1.mkdirSync)(copyTargetFileInfo); + } + // console.log(`创建文件夹: ${copyTargetFileInfo}`); copyFolder(copyCurrentFileInfo, copyTargetFileInfo, overwrite); } catch (error) { - (0, tip_style_1.Warn)('权限不足' + error); + console.error('权限不足', error); throw error; } } @@ -167,14 +174,15 @@ function copyFolder(currentDir, targetDir, overwrite) { if ((0, fs_1.existsSync)(currentDir)) { if (!(0, fs_1.existsSync)(targetDir)) { (0, fs_1.mkdirSync)(targetDir); + // console.log(`创建目标文件夹: ${targetDir}`); } handleFolder(currentDir, targetDir); } else { - throw new global.Error('需要copy的文件夹不存在:' + currentDir); + console.error(`需要copy的文件夹不存在: ${currentDir}`); + throw new global.Error(`需要copy的文件夹不存在: ${currentDir}`); } } -exports.copyFolder = copyFolder; /** * @name 检测文件/文件夹是否存在 * @export @@ -184,7 +192,6 @@ exports.copyFolder = copyFolder; function checkFileExists(path) { return (0, fs_1.existsSync)(path); } -exports.checkFileExists = checkFileExists; /** * @name 检测文件/文件夹是否存在,不存在则创建 * @export @@ -210,4 +217,3 @@ function checkFileExistsAndCreate(path, data, type = enum_1.checkFileExistsAndCr throw new global.Error(`${path} already exists!`); } } -exports.checkFileExistsAndCreate = checkFileExistsAndCreate; diff --git a/lib/makeDependency.js b/lib/makeDependency.js index b8af9f7..765d57c 100644 --- a/lib/makeDependency.js +++ b/lib/makeDependency.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = make; const tslib_1 = require("tslib"); const tip_style_1 = require("./tip-style"); const cross_spawn_1 = tslib_1.__importDefault(require("cross-spawn")); @@ -24,4 +25,3 @@ async function make(cmd, rebuild) { process.exit(-1); } } -exports.default = make; diff --git a/lib/makeDomain.js b/lib/makeDomain.js index c5c89e4..eb140b2 100644 --- a/lib/makeDomain.js +++ b/lib/makeDomain.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = make; const tslib_1 = require("tslib"); const tip_style_1 = require("./tip-style"); const cross_spawn_1 = tslib_1.__importDefault(require("cross-spawn")); @@ -20,4 +21,3 @@ async function make() { process.exit(-1); } } -exports.default = make; diff --git a/lib/makeLocale.js b/lib/makeLocale.js index 7da9a71..f27f7fa 100644 --- a/lib/makeLocale.js +++ b/lib/makeLocale.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = make; const tslib_1 = require("tslib"); const tip_style_1 = require("./tip-style"); const localeBuilder_1 = tslib_1.__importDefault(require("oak-domain/lib/compiler/localeBuilder")); @@ -18,4 +19,3 @@ async function make(cmd) { process.exit(-1); } } -exports.default = make; diff --git a/lib/makeRouter.js b/lib/makeRouter.js index 61eda2b..d3a5196 100644 --- a/lib/makeRouter.js +++ b/lib/makeRouter.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = make; const tslib_1 = require("tslib"); const tip_style_1 = require("./tip-style"); const cross_spawn_1 = tslib_1.__importDefault(require("cross-spawn")); @@ -30,4 +31,3 @@ async function make(cmd, watch) { process.exit(-1); } } -exports.default = make; diff --git a/lib/rename.js b/lib/rename.js index 5216ee9..395233a 100644 --- a/lib/rename.js +++ b/lib/rename.js @@ -1,6 +1,7 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.rename = exports.renameProject = void 0; +exports.renameProject = renameProject; +exports.rename = rename; const path_1 = require("path"); const fs_1 = require("fs"); const editTemplate_1 = require("@react-native-community/cli/build/commands/init/editTemplate"); @@ -42,12 +43,10 @@ async function renameProject(dir, name, title, placeholderName, placeholderTitle process.chdir(cwd); (0, tip_style_1.Success)(`${(0, tip_style_1.success)(`Change project name to ${(0, tip_style_1.primary)(name)}, project title to ${(0, tip_style_1.primary)(title)}`)}`); } -exports.renameProject = renameProject; async function rename(cmd) { const { projectName, displayName } = cmd; // todo 取native/android下的name和title作为placeholder,再调用renameProject } -exports.rename = rename; /* changePlaceholderInTemplate({ projectName: 'taicang', projectTitle: '太藏', diff --git a/lib/run.js b/lib/run.js index 4d431e1..bfb8be2 100644 --- a/lib/run.js +++ b/lib/run.js @@ -1,5 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); +exports.default = run; const tslib_1 = require("tslib"); const tip_style_1 = require("./tip-style"); const cross_spawn_1 = tslib_1.__importDefault(require("cross-spawn")); @@ -59,4 +60,3 @@ async function run(options) { process.exit(-1); } } -exports.default = run; diff --git a/lib/server/initialize.d.ts b/lib/server/initialize.d.ts index 964ab37..b13884d 100644 --- a/lib/server/initialize.d.ts +++ b/lib/server/initialize.d.ts @@ -1,4 +1,3 @@ -/// 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'; diff --git a/lib/server/initialize.js b/lib/server/initialize.js index 90f692b..acdfa85 100644 --- a/lib/server/initialize.js +++ b/lib/server/initialize.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.initialize = void 0; +exports.initialize = initialize; /// const oak_backend_base_1 = require("oak-backend-base"); async function initialize(path) { @@ -10,4 +10,3 @@ async function initialize(path) { await appLoader.unmount(); console.log('data initialized'); } -exports.initialize = initialize; diff --git a/lib/server/start.d.ts b/lib/server/start.d.ts index db13f31..2d8a2fb 100644 --- a/lib/server/start.d.ts +++ b/lib/server/start.d.ts @@ -1,4 +1,3 @@ -/// import './polyfill'; import { BackendRuntimeContext } from 'oak-frontend-base/lib/context/BackendRuntimeContext'; import { Connector, EntityDict } from 'oak-domain/lib/types'; diff --git a/lib/server/start.js b/lib/server/start.js index 336562f..cf140c5 100644 --- a/lib/server/start.js +++ b/lib/server/start.js @@ -1,6 +1,6 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.startup = void 0; +exports.startup = startup; const tslib_1 = require("tslib"); /// require("./polyfill"); @@ -222,4 +222,3 @@ async function startup(path, connector, omitWatchers, omitTimers, routine) { process.exit(0); }); } -exports.startup = startup; diff --git a/lib/template.js b/lib/template.js index 52fc53f..ca85734 100644 --- a/lib/template.js +++ b/lib/template.js @@ -1,6 +1,16 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.oakConfigContentWithWeb = exports.oakConfigContentWithWeChatMp = exports.appJsonContentWithWeChatMp = exports.projectConfigContentWithWeChatMp = exports.tsConfigWebJsonContent = exports.tsConfigMpJsonContent = exports.tsConfigPathsJsonContent = exports.tsConfigBuildPathsJsonContent = exports.tsConfigBuildJsonContent = exports.tsConfigJsonContent = exports.packageJsonContent = void 0; +exports.packageJsonContent = packageJsonContent; +exports.tsConfigJsonContent = tsConfigJsonContent; +exports.tsConfigBuildJsonContent = tsConfigBuildJsonContent; +exports.tsConfigBuildPathsJsonContent = tsConfigBuildPathsJsonContent; +exports.tsConfigPathsJsonContent = tsConfigPathsJsonContent; +exports.tsConfigMpJsonContent = tsConfigMpJsonContent; +exports.tsConfigWebJsonContent = tsConfigWebJsonContent; +exports.projectConfigContentWithWeChatMp = projectConfigContentWithWeChatMp; +exports.appJsonContentWithWeChatMp = appJsonContentWithWeChatMp; +exports.oakConfigContentWithWeChatMp = oakConfigContentWithWeChatMp; +exports.oakConfigContentWithWeb = oakConfigContentWithWeb; const child_process_1 = require("child_process"); const fs_1 = require("fs"); const path_1 = require("path"); @@ -93,80 +103,91 @@ function packageJsonContent({ name, version, description, cliName, cliBinName, i "license": "", "typings": "typings/index.d.ts", "dependencies": { - "@ant-design/cssinjs": "^1.16.2", - "@ant-design/icons": "^5.2.6", - "@react-native-async-storage/async-storage": "^1.19.8", - "@react-native-masked-view/masked-view": "^0.3.0", - "@react-navigation/bottom-tabs": "^6.5.11", - "@react-navigation/native": "^6.1.9", - "@react-navigation/stack": "^6.3.20", - "@wangeditor/basic-modules": "^1.1.3", - "@wangeditor/editor": "^5.1.14", - "@wangeditor/editor-for-react": "^1.0.4", - "antd": "^5.8.3", - "antd-mobile": "^5.32.0", - "antd-mobile-icons": "^0.3.0", - "classnames": "^2.3.1", - "crypto-browserify": "^3.12.0", - "crypto-js": "^4.1.1", - "dayjs": "^1.11.5", - "echarts": "^5.3.0", - "echarts-for-react": "^3.0.2", - "history": "^5.3.0", - "hmacsha1": "^1.0.0", - "js-base64": "^3.7.2", - "lodash": "^4.17.21", - "nprogress": "^0.2.0", - ${oakDependencyStr} - "react": "^18.3.0", - "react-dom": "^18.3.0", - "react-native": "^0.75.0", - "react-native-exception-handler": "^2.10.10", - "react-native-gesture-handler": "^2.14.0", - "react-native-localize": "^3.0.4", - "react-native-quick-base64": "^2.0.7", - "react-native-quick-crypto": "^0.6.1", - "react-native-reanimated": "^3.5.4", - "react-native-safe-area-context": "^4.7.4", - "react-native-screens": "^3.27.0", - "react-native-url-polyfill": "^2.0.0", - "react-responsive": "^9.0.0-beta.10", - "react-router-dom": "^6.4.0", - "react-slick": "^0.29.0", - "rmc-pull-to-refresh": "^1.0.13", - "uuid": "^8.3.2" + "@ant-design/cssinjs": "^1.16.2", + "@ant-design/icons": "^5.2.6", + "@bytemd/plugin-breaks": "^1.21.0", + "@bytemd/plugin-frontmatter": "^1.21.0", + "@bytemd/plugin-gemoji": "^1.21.0", + "@bytemd/plugin-gfm": "^1.21.0", + "@bytemd/plugin-highlight": "^1.21.0", + "@bytemd/plugin-math": "^1.21.0", + "@bytemd/plugin-medium-zoom": "^1.21.0", + "@bytemd/plugin-mermaid": "^1.21.0", + "@bytemd/react": "^1.21.0", + "react-beautiful-dnd": "^13.1.1", + "@react-native-async-storage/async-storage": "^1.19.8", + "@react-native-masked-view/masked-view": "^0.3.0", + "@react-navigation/bottom-tabs": "^6.5.11", + "@react-navigation/native": "^6.1.9", + "@react-navigation/stack": "^6.3.20", + "@wangeditor/basic-modules": "^1.1.3", + "@wangeditor/editor": "^5.1.14", + "@wangeditor/editor-for-react": "^1.0.4", + "antd": "^5.8.3", + "antd-mobile": "^5.32.0", + "antd-mobile-icons": "^0.3.0", + "classnames": "^2.3.1", + "crypto-browserify": "^3.12.0", + "crypto-js": "^4.1.1", + "dayjs": "^1.11.5", + "echarts": "^5.3.0", + "echarts-for-react": "^3.0.2", + "history": "^5.3.0", + "hmacsha1": "^1.0.0", + "js-base64": "^3.7.2", + "lodash": "^4.17.21", + "nprogress": "^0.2.0", + ${oakDependencyStr} + "react": "^18.3.0", + "react-dom": "^18.3.0", + "react-native": "^0.75.0", + "react-native-exception-handler": "^2.10.10", + "react-native-gesture-handler": "^2.14.0", + "react-native-localize": "^3.0.4", + "react-native-quick-base64": "^2.0.7", + "react-native-quick-crypto": "^0.6.1", + "react-native-reanimated": "^3.5.4", + "react-native-safe-area-context": "^4.7.4", + "react-native-screens": "^3.27.0", + "react-native-url-polyfill": "^2.0.0", + "react-responsive": "^9.0.0-beta.10", + "react-router-dom": "^6.4.0", + "react-slick": "^0.29.0", + "rmc-pull-to-refresh": "^1.0.13", + "uuid": "^8.3.2" }, "devDependencies": { - "@babel/cli": "^7.12.13", - "@babel/core": "^7.12.13", - "@babel/plugin-proposal-class-properties": "^7.12.13", - "@babel/plugin-proposal-private-property-in-object": "^7.21.11", - "@babel/preset-env": "^7.12.13", - "@babel/preset-typescript": "^7.12.13", - "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", - "@react-native/metro-config": "^0.72.11", - "@svgr/webpack": "^5.5.0", - "@testing-library/jest-dom": "^5.16.4", - "@testing-library/react": "^13.3.0", - "@testing-library/user-event": "^13.5.0", - "@tsconfig/react-native": "^3.0.0", - "@types/assert": "^1.5.6", - "@types/crypto-js": "^4.1.1", - "@types/fs-extra": "^9.0.13", - "@types/isomorphic-fetch": "^0.0.36", - "@types/jest": "^27.5.2", - "@types/lodash": "^4.14.179", - "@types/luxon": "^2.3.2", - "@types/mocha": "^8.2.0", - "@types/node": "^20.10.2", - "@types/nprogress": "^0.2.0", - "@types/react": "^18.0.12", - "@types/react-dom": "^18.0.5", - "@types/react-image-gallery": "^1.2.0", - "@types/shelljs": "^0.8.11", - "@types/urlsafe-base64": "^1.0.28", - "@types/uuid": "^8.3.0", - "@types/wechat-miniprogram": "^3.4.0", + "@babel/cli": "^7.12.13", + "@babel/core": "^7.12.13", + "@babel/plugin-proposal-class-properties": "^7.12.13", + "@babel/plugin-proposal-private-property-in-object": "^7.21.11", + "@babel/preset-env": "^7.12.13", + "@babel/preset-typescript": "^7.12.13", + "@pmmmwh/react-refresh-webpack-plugin": "^0.5.3", + "@react-native/metro-config": "^0.72.11", + "@svgr/webpack": "^5.5.0", + "@testing-library/jest-dom": "^5.16.4", + "@testing-library/react": "^13.3.0", + "@testing-library/user-event": "^13.5.0", + "@tsconfig/react-native": "^3.0.0", + "@types/assert": "^1.5.6", + "@types/crypto-js": "^4.1.1", + "@types/fs-extra": "^9.0.13", + "@types/isomorphic-fetch": "^0.0.36", + "@types/jest": "^27.5.2", + "@types/lodash": "^4.14.179", + "@types/luxon": "^2.3.2", + "@types/mocha": "^8.2.0", + "@types/node": "^20.10.2", + "@types/nprogress": "^0.2.0", + "@types/react": "^18.0.12", + "@types/react-dom": "^18.0.5", + "@types/react-image-gallery": "^1.2.0", + "@types/react-beautiful-dnd": "^13.1.8", + "@types/shelljs": "^0.8.11", + "@types/urlsafe-base64": "^1.0.28", + "@types/uuid": "^8.3.0", + "@types/wechat-miniprogram": "^3.4.0", ${oakDevDependencyStr} "assert": "^2.0.0", "babel-jest": "^27.4.2", @@ -261,11 +282,15 @@ function packageJsonContent({ name, version, description, cliName, cliBinName, i "not op_mini all" ] }, - "copyWebpack": [] + "copyWebpack": [], + "overrides": { + "crypto-browserify": { + "readable-stream": "3.6.2" + } + } } `; } -exports.packageJsonContent = packageJsonContent; function tsConfigJsonContent() { return `{ "extends": "./tsconfig.paths.json", @@ -312,7 +337,6 @@ function tsConfigJsonContent() { ] }`; } -exports.tsConfigJsonContent = tsConfigJsonContent; function tsConfigBuildJsonContent() { return `{ "extends": "./tsconfig.build.paths.json", @@ -352,7 +376,6 @@ function tsConfigBuildJsonContent() { ] }`; } -exports.tsConfigBuildJsonContent = tsConfigBuildJsonContent; function tsConfigBuildPathsJsonContent() { return `{ "compilerOptions": { @@ -372,7 +395,6 @@ function tsConfigBuildPathsJsonContent() { } }`; } -exports.tsConfigBuildPathsJsonContent = tsConfigBuildPathsJsonContent; function tsConfigPathsJsonContent() { return `{ "compilerOptions": { @@ -392,7 +414,6 @@ function tsConfigPathsJsonContent() { } }`; } -exports.tsConfigPathsJsonContent = tsConfigPathsJsonContent; function tsConfigMpJsonContent() { return `{ "extends": "./tsconfig.paths.json", @@ -440,7 +461,6 @@ function tsConfigMpJsonContent() { ] }`; } -exports.tsConfigMpJsonContent = tsConfigMpJsonContent; function tsConfigWebJsonContent() { return `{ "extends": "./tsconfig.paths.json", @@ -490,7 +510,6 @@ function tsConfigWebJsonContent() { ] }`; } -exports.tsConfigWebJsonContent = tsConfigWebJsonContent; function projectConfigContentWithWeChatMp(oakConfigName, projectname, miniVersion) { return `{ "description": "项目配置文件", @@ -566,7 +585,6 @@ function projectConfigContentWithWeChatMp(oakConfigName, projectname, miniVersio } }`; } -exports.projectConfigContentWithWeChatMp = projectConfigContentWithWeChatMp; function appJsonContentWithWeChatMp(isDev) { const pages = [ '@project/pages/store/list/index', @@ -590,18 +608,15 @@ function appJsonContentWithWeChatMp(isDev) { "sitemapLocation": "sitemap.json" }`; } -exports.appJsonContentWithWeChatMp = appJsonContentWithWeChatMp; function oakConfigContentWithWeChatMp() { return `{ "theme": { } }`; } -exports.oakConfigContentWithWeChatMp = oakConfigContentWithWeChatMp; function oakConfigContentWithWeb() { return `{ "theme": { } }`; } -exports.oakConfigContentWithWeb = oakConfigContentWithWeb; diff --git a/lib/utils.js b/lib/utils.js index 19c6772..857ccdb 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -1,6 +1,12 @@ "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -exports.deWeight = exports.formatJsonByFile = exports.union = exports.intersect = exports.difference = exports.getStr = exports.findJson = void 0; +exports.findJson = findJson; +exports.getStr = getStr; +exports.difference = difference; +exports.intersect = intersect; +exports.union = union; +exports.formatJsonByFile = formatJsonByFile; +exports.deWeight = deWeight; /** * @name 从一组路径里查找到所有json文件 * @export @@ -18,7 +24,6 @@ function findJson(pathArr) { } return result; } -exports.findJson = findJson; /** * @name 已知前后文取中间文本 * @export @@ -32,7 +37,6 @@ function getStr(str, start, end) { let res = str.match(reg); return res ? res[1] : null; } -exports.getStr = getStr; /** * @name 差集 * @export @@ -44,7 +48,6 @@ exports.getStr = getStr; function difference(current, target) { return new Set([...target].filter(x => !current.has(x))); } -exports.difference = difference; /** * @name 获取交集 * @export @@ -56,7 +59,6 @@ exports.difference = difference; function intersect(current, target) { return new Set([...target].filter(x => current.has(x))); } -exports.intersect = intersect; /** * @name 获取并集 * @export @@ -68,7 +70,6 @@ exports.intersect = intersect; function union(current, target) { return new Set([...current, ...target]); } -exports.union = union; /** * @name 格式化json * @export @@ -79,7 +80,6 @@ exports.union = union; function formatJsonByFile(data) { return JSON.stringify(data, null, 2); } -exports.formatJsonByFile = formatJsonByFile; /** * @name 数组对象去重 * @export @@ -96,4 +96,3 @@ function deWeight(arr, type) { } return new Set([...map.values()]); } -exports.deWeight = deWeight;