diff --git a/packages/@lwc/engine-core/src/framework/check-version-mismatch.ts b/packages/@lwc/engine-core/src/framework/check-version-mismatch.ts index a8821a5f62..9b555336a2 100644 --- a/packages/@lwc/engine-core/src/framework/check-version-mismatch.ts +++ b/packages/@lwc/engine-core/src/framework/check-version-mismatch.ts @@ -38,6 +38,11 @@ export function checkVersionMismatch( ) { const versionMatcher = func.toString().match(LWC_VERSION_COMMENT_REGEX); if (!isNull(versionMatcher) && !warned) { + if (process.env.SKIP_LWC_VERSION_MISMATCH_CHECK === 'true') { + warned = true; // skip printing out version mismatch errors when env var is set + return; + } + const version = versionMatcher[1]; if (version !== LWC_VERSION) { warned = true; // only warn once to avoid flooding the console diff --git a/packages/@lwc/integration-karma/test/rendering/version-mismatch/index.spec.js b/packages/@lwc/integration-karma/test/rendering/version-mismatch/index.spec.js index a24f0c4701..dd44e7644e 100644 --- a/packages/@lwc/integration-karma/test/rendering/version-mismatch/index.spec.js +++ b/packages/@lwc/integration-karma/test/rendering/version-mismatch/index.spec.js @@ -48,9 +48,23 @@ describe('compiler version mismatch', () => { }); afterEach(() => { + process.env.SKIP_LWC_VERSION_MISMATCH_CHECK = 'false'; detachReportingControlDispatcher(); }); + it('skip warning during local dev', () => { + process.env.SKIP_LWC_VERSION_MISMATCH_CHECK = 'true'; + function tmpl() { + return []; + /*LWC compiler v123.456.789*/ + } + + expect(() => { + registerTemplate(tmpl); + }).not.toLogErrorDev(new RegExp(`LWC WARNING:`)); + expect(dispatcher).not.toHaveBeenCalled(); + }); + it('template', () => { function tmpl() { return []; diff --git a/scripts/rollup/rollup.config.js b/scripts/rollup/rollup.config.js index ca267b48de..06e9b1f955 100644 --- a/scripts/rollup/rollup.config.js +++ b/scripts/rollup/rollup.config.js @@ -55,6 +55,10 @@ function sharedPlugins() { // This is only used inside @lwc/engine-dom and @lwc/engine-server // Elsewhere, it _not_ be replaced, so that it can be replaced later (e.g. in @lwc/engine-core) 'process.env.IS_BROWSER': packageName === '@lwc/engine-dom' ? 'true' : 'false', + // Only used in @lwc/engine-server, set to false for @lwc/engine-dom + ...(packageName === '@lwc/engine-dom' + ? { 'process.env.SKIP_LWC_VERSION_MISMATCH_CHECK': 'false' } + : {}), }; return [