/* * Copyright (c) 2023 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import fs from 'fs'; import path from 'path'; const { projectConfig, loadEntryObj, abilityConfig, initBuildInfo, readWorkerFile, loadWorker, readPatchConfig, loadModuleInfo } = require('../../../main.js'); export let workerFile = null; export function getEntryObj() { loadEntryObj(projectConfig); initBuildInfo(); readPatchConfig(); loadModuleInfo(projectConfig); workerFile = readWorkerFile(); if (!projectConfig.isPreview) { loadWorker(projectConfig, workerFile); } projectConfig.entryObj = Object.keys(projectConfig.entryObj).reduce((newEntry, key) => { const newKey: string = key.replace(/^\.\//, ''); newEntry[newKey] = projectConfig.entryObj[key].replace('?entry', ''); return newEntry; }, {}); } export function setCopyPluginConfig(projectConfig: any, appResource: string) { const copyPluginPattrens: object[] = []; const BUILD_SHARE_PATH: string = '../share'; copyPluginPattrens.push({ src: [ path.resolve(projectConfig.projectPath, '**/*'), '!**/*.ets', '!**/*.ts', '!**/*.js', `!${projectConfig.buildPath}` ], dest: projectConfig.buildPath }); const sharePath: string = path.resolve(projectConfig.projectPath, BUILD_SHARE_PATH); if (fs.existsSync(sharePath)) { copyPluginPattrens.push({ src: [ path.resolve(projectConfig.projectPath, BUILD_SHARE_PATH, '**/*'), '!**/*.ets', '!**/*.ts', '!**/*.js' ], dest: path.resolve(projectConfig.buildPath, BUILD_SHARE_PATH), }); } if (abilityConfig.abilityType === 'page') { if (fs.existsSync(projectConfig.manifestFilePath)) { copyPluginPattrens.push({ src: projectConfig.manifestFilePath, dest: projectConfig.buildPath }); } else if (fs.existsSync(projectConfig.aceConfigPath)) { copyPluginPattrens.push({ src: projectConfig.aceConfigPath, dest: projectConfig.buildPath }); } } if (appResource && fs.existsSync(appResource) && !projectConfig.xtsMode && projectConfig.isPreview) { copyPluginPattrens.push({ src: path.resolve(__dirname, appResource), dest: path.resolve(__dirname, projectConfig.cachePath) }); } return copyPluginPattrens; }