diff --git a/packages/webpack5/src/configuration/base.ts b/packages/webpack5/src/configuration/base.ts index 22cdb4f7f..e4dd6b2ca 100644 --- a/packages/webpack5/src/configuration/base.ts +++ b/packages/webpack5/src/configuration/base.ts @@ -18,6 +18,8 @@ import { getEntryDirPath, getEntryPath, } from '../helpers/platform'; +import { getProjectRootPath } from '../helpers/project'; +import { resolve } from 'path'; export default function (config: Config, env: IWebpackEnv): Config { const entryPath = getEntryPath(); @@ -266,7 +268,14 @@ export default function (config: Config, env: IWebpackEnv): Config { }); config.when(env.report, (config) => { - config.plugin('BundleAnalyzerPlugin').use(BundleAnalyzerPlugin); + const projectRoot = getProjectRootPath(); + config.plugin('BundleAnalyzerPlugin').use(BundleAnalyzerPlugin, [{ + analyzerMode: 'static', + generateStatsFile: true, + openAnalyzer: false, + reportFilename: resolve(projectRoot, 'report', 'report.html'), + statsFilename: resolve(projectRoot, 'report', 'stats.json'), + }]); }); return config; diff --git a/packages/webpack5/src/configuration/svelte.ts b/packages/webpack5/src/configuration/svelte.ts index 2199ee56f..2e6528df5 100644 --- a/packages/webpack5/src/configuration/svelte.ts +++ b/packages/webpack5/src/configuration/svelte.ts @@ -17,7 +17,6 @@ export default function (config: Config, env: IWebpackEnv = _env): Config { // resolve .svelte files // the order is reversed because we are using prepend! config.resolve.extensions.prepend('.svelte').prepend(`.${platform}.svelte`); - // add a rule for .svelte files config.module .rule('svelte') @@ -30,7 +29,7 @@ export default function (config: Config, env: IWebpackEnv = _env): Config { return { ...options, dev: !production, - preprocess: [getSvelteConfigPreprocessor(), svelteNativePreprocessor()], + preprocess: getSvelteConfigPreprocessor(), hotReload: !production, hotOptions: { injectCss: false, diff --git a/packages/webpack5/src/helpers/copyRules.ts b/packages/webpack5/src/helpers/copyRules.ts index c7e4b9195..d425e96d1 100644 --- a/packages/webpack5/src/helpers/copyRules.ts +++ b/packages/webpack5/src/helpers/copyRules.ts @@ -1,6 +1,8 @@ import CopyWebpackPlugin from 'copy-webpack-plugin'; - +import { relative, resolve } from 'path'; +import { env } from '..'; import { getEntryDirPath } from './platform'; +import { getProjectRootPath } from './project'; /** * @internal @@ -36,17 +38,18 @@ export function removeCopyRule(glob: string) { * @internal */ export function applyCopyRules(config) { + + const context = getEntryDirPath(); + const projectRoot = getProjectRootPath(); + const appResourcesFullPath = resolve(projectRoot, env.appResourcesPath); + const globOptions = { dot: false, ignore: [`**/${relative(context, appResourcesFullPath)}/**`] }; config.plugin('CopyWebpackPlugin').use(CopyWebpackPlugin, [ { patterns: Array.from(copyRules).map((glob) => ({ from: glob, - context: getEntryDirPath(), + context, noErrorOnMissing: true, - globOptions: { - dot: false, - // todo: ignore AppResources if inside app folder! - // ignore: [``] - }, + globOptions, })), }, ]);