diff --git a/packages/next/export/index.ts b/packages/next/export/index.ts index a338f9e308896..6cbb304500603 100644 --- a/packages/next/export/index.ts +++ b/packages/next/export/index.ts @@ -215,6 +215,9 @@ export default async function( hotReloader: null, canonicalBase: (nextConfig.amp && nextConfig.amp.canonicalBase) || '', isModern: nextConfig.experimental.modern, + ampValidator: + (nextConfig.experimental.amp && nextConfig.experimental.amp.validator) || + undefined, } const { serverRuntimeConfig, publicRuntimeConfig } = nextConfig diff --git a/packages/next/export/worker.js b/packages/next/export/worker.js index 0b02d84c768ca..17e3fc234a8a5 100644 --- a/packages/next/export/worker.js +++ b/packages/next/export/worker.js @@ -163,8 +163,8 @@ export default async function({ } } - const validateAmp = async (html, page) => { - const validator = await AmpHtmlValidator.getInstance() + const validateAmp = async (html, page, validatorPath) => { + const validator = await AmpHtmlValidator.getInstance(validatorPath) const result = validator.validateString(html) const errors = result.errors.filter(e => e.severity === 'ERROR') const warnings = result.errors.filter(e => e.severity !== 'ERROR') @@ -181,7 +181,7 @@ export default async function({ } if (curRenderOpts.inAmpMode) { - await validateAmp(html, path) + await validateAmp(html, path, curRenderOpts.ampValidator) } else if (curRenderOpts.hybridAmp) { // we need to render the AMP version let ampHtmlFilename = `${ampPath}${sep}index.html` diff --git a/packages/next/server/next-dev-server.ts b/packages/next/server/next-dev-server.ts index 25c081f6a7fb9..94390309afaf6 100644 --- a/packages/next/server/next-dev-server.ts +++ b/packages/next/server/next-dev-server.ts @@ -54,7 +54,11 @@ export default class DevServer extends Server { html: string, pathname: string ) => { - return AmpHtmlValidator.getInstance().then(validator => { + const validatorPath = + this.nextConfig.experimental && + this.nextConfig.experimental.amp && + this.nextConfig.experimental.amp.validator + return AmpHtmlValidator.getInstance(validatorPath).then(validator => { const result = validator.validateString(html) ampValidation( pathname,