diff --git a/ace-loader/webpack.rich.config.js b/ace-loader/webpack.rich.config.js index 89253ba3d9e5db5eb2e6f87dd20b503637d27ced..648cf54a4628e001ab9d75c28bf9232c1f3ea58f 100644 --- a/ace-loader/webpack.rich.config.js +++ b/ace-loader/webpack.rich.config.js @@ -173,10 +173,18 @@ let config = { poll: false, ignored: ["**/node_modules", "**/oh_modules", "**/*.json~"] }, - + optimization: { + moduleIds: 'deterministic', + chunkIds: 'deterministic', + }, output: { filename: '[name].js', - devtoolModuleFilenameTemplate: 'webpack:///[absolute-resource-path]', + pathinfo: false, + devtoolModuleFilenameTemplate: (info) => { + const newInfo = info.absoluteResourcePath.replaceAll(process.env.projectRootPath + path.sep, '') + .replace(path.join(__dirname, path.sep), ''); + return newInfo; + }, globalObject: 'globalThis' }, devtool: 'nosources-source-map', @@ -342,10 +350,11 @@ module.exports = (env) => { if (process.env.DEVICE_LEVEL === 'card') { config.module = cardModule config.plugins.push(new AfterEmitPlugin()) + config.optimization = {}; setArkPlugin(env, workerFile); } else { if (process.env.compileMode !== 'moduleJson' && process.env.abilityType === 'page') { - config.optimization = { + Object.assign(config.optimization, { splitChunks: { chunks(chunk) { return !excludeWorker(workerFile, chunk.name) && !/^\.\/TestAbility/.test(chunk.name); @@ -365,19 +374,14 @@ module.exports = (env) => { } } }, - } + }); } setArkPlugin(env, workerFile); if (env.sourceMap === 'none') { config.devtool = false } if (env.buildMode === 'release') { - config.mode = 'production' - if (process.env.compileMode !== 'moduleJson' && process.env.abilityType === 'page') { - config.optimization = config.optimization; - } else { - config.optimization = {}; - } + config.mode = 'production'; Object.assign(config.optimization, { minimize: true, minimizer: [new TerserPlugin({ @@ -391,19 +395,21 @@ module.exports = (env) => { if_return: true, reduce_vars: true, join_vars: false, - sequences: 0 + sequences: 0, }, format: { semicolons: false, beautify: true, braces: true, - indent_level: 2 - } - } - })] - }) + indent_level: 2, + }, + }, + })], + }); config.output.devtoolModuleFilenameTemplate = (info) => { - return `webpack:///${info.absoluteResourcePath.replace(process.env.projectRootPath, '')}`; + const newInfo = info.absoluteResourcePath.replaceAll(process.env.projectRootPath + path.sep, '') + .replace(path.join(__dirname, path.sep), ''); + return newInfo; } config.output.sourceMapFilename = '_releaseMap/[name].js.map' }