gatsby 2.24.80 → 2.24.84
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +24 -0
- package/dist/bootstrap/load-plugins/validate.js +8 -4
- package/dist/bootstrap/load-plugins/validate.js.map +1 -1
- package/dist/commands/build.js +3 -1
- package/dist/commands/build.js.map +1 -1
- package/dist/commands/clean.js +3 -1
- package/dist/commands/clean.js.map +1 -1
- package/dist/commands/develop-process.js +3 -1
- package/dist/commands/develop-process.js.map +1 -1
- package/dist/services/initialize.js +12 -2
- package/dist/services/initialize.js.map +1 -1
- package/dist/utils/api-runner-node.js +5 -3
- package/dist/utils/api-runner-node.js.map +1 -1
- package/dist/utils/feedback.js +76 -9
- package/dist/utils/feedback.js.map +1 -1
- package/gatsby-admin-public/4c744e84-58cfdb9534713ac5b3be.js.map +1 -1
- package/gatsby-admin-public/69bd6bf3-2e3faf95de57e73bd9fd.js.map +1 -1
- package/gatsby-admin-public/854a7ef1f34af0aefbdfdd9304a0c00251662775-94bfe5efaf16d4c0295d.js.map +1 -1
- package/gatsby-admin-public/{app-b871bcc6a5d35ae970be.js → app-24012633b07b1166037e.js} +2 -2
- package/gatsby-admin-public/{app-b871bcc6a5d35ae970be.js.LICENSE.txt → app-24012633b07b1166037e.js.LICENSE.txt} +0 -0
- package/gatsby-admin-public/app-24012633b07b1166037e.js.map +1 -0
- package/gatsby-admin-public/c432bec7e9afb3443fd639df9e5f119e13575cf7-544e1c920df427399be1.js.map +1 -1
- package/gatsby-admin-public/chunk-map.json +1 -1
- package/gatsby-admin-public/{component---src-pages-index-tsx-88a049665af52f850d1f.js → component---src-pages-index-tsx-d4eccfe1d5cb27bf0eb6.js} +2 -2
- package/gatsby-admin-public/{component---src-pages-index-tsx-88a049665af52f850d1f.js.LICENSE.txt → component---src-pages-index-tsx-d4eccfe1d5cb27bf0eb6.js.LICENSE.txt} +0 -0
- package/gatsby-admin-public/component---src-pages-index-tsx-d4eccfe1d5cb27bf0eb6.js.map +1 -0
- package/gatsby-admin-public/component---src-pages-plugins-tsx-90c91befb06ea49e2e86.js.map +1 -1
- package/gatsby-admin-public/{component---src-pages-recipe-js-b869b33cba05ca5275f2.js → component---src-pages-recipe-js-186fe5b47d9269c02a73.js} +1 -1
- package/gatsby-admin-public/component---src-pages-recipe-js-186fe5b47d9269c02a73.js.map +1 -0
- package/gatsby-admin-public/e2852b4470dcb2615e49edcd9de2a3c8119d4bec-6389f7fcd9614c42010f.js.map +1 -1
- package/gatsby-admin-public/framework-485671be9482847aa52d.js.map +1 -1
- package/gatsby-admin-public/index.html +1 -1
- package/gatsby-admin-public/page-data/app-data.json +1 -1
- package/gatsby-admin-public/pages/index.html +1 -1
- package/gatsby-admin-public/plugins/index.html +1 -1
- package/gatsby-admin-public/polyfill-36a60d09f576c87d22d9.js.map +1 -1
- package/gatsby-admin-public/recipe/index.html +1 -1
- package/gatsby-admin-public/recipes/index.html +1 -1
- package/gatsby-admin-public/{webpack-runtime-0ace6e6e66c1aa98bd45.js → webpack-runtime-b8c88965f68e81670ad4.js} +2 -2
- package/gatsby-admin-public/{webpack-runtime-0ace6e6e66c1aa98bd45.js.map → webpack-runtime-b8c88965f68e81670ad4.js.map} +1 -1
- package/gatsby-admin-public/webpack.stats.json +1 -1
- package/package.json +7 -7
- package/gatsby-admin-public/app-b871bcc6a5d35ae970be.js.map +0 -1
- package/gatsby-admin-public/component---src-pages-index-tsx-88a049665af52f850d1f.js.map +0 -1
- package/gatsby-admin-public/component---src-pages-recipe-js-b869b33cba05ca5275f2.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,30 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [2.24.84](https://github.com/gatsbyjs/gatsby/compare/gatsby@2.24.83...gatsby@2.24.84) (2020-10-21)
|
|
7
|
+
|
|
8
|
+
### Bug Fixes
|
|
9
|
+
|
|
10
|
+
- duplicate types to solve circular dependency ([#27578](https://github.com/gatsbyjs/gatsby/issues/27578)) ([029ec48](https://github.com/gatsbyjs/gatsby/commit/029ec489a271ddeb7ad3fa174bd536c1b38db246))
|
|
11
|
+
|
|
12
|
+
## [2.24.83](https://github.com/gatsbyjs/gatsby/compare/gatsby@2.24.82...gatsby@2.24.83) (2020-10-20)
|
|
13
|
+
|
|
14
|
+
### Bug Fixes
|
|
15
|
+
|
|
16
|
+
- **gatsby:** Handle double prefix case for `extendErrorIdWithPluginName` ([#27547](https://github.com/gatsbyjs/gatsby/issues/27547)) ([b4d8342](https://github.com/gatsbyjs/gatsby/commit/b4d8342008de8fac199e3a524130573ba81ed354))
|
|
17
|
+
|
|
18
|
+
## [2.24.82](https://github.com/gatsbyjs/gatsby/compare/gatsby@2.24.81...gatsby@2.24.82) (2020-10-19)
|
|
19
|
+
|
|
20
|
+
### Bug Fixes
|
|
21
|
+
|
|
22
|
+
- **gatsby:** notify when Gatsby cache is incomplete ([#27549](https://github.com/gatsbyjs/gatsby/issues/27549)) ([2d6a153](https://github.com/gatsbyjs/gatsby/commit/2d6a1535ca2fa45bc6821d3273c32e18f66913fc))
|
|
23
|
+
|
|
24
|
+
## [2.24.81](https://github.com/gatsbyjs/gatsby/compare/gatsby@2.24.80...gatsby@2.24.81) (2020-10-19)
|
|
25
|
+
|
|
26
|
+
### Features
|
|
27
|
+
|
|
28
|
+
- **gatsby-plugin-utils:** save validation resulting value to plugin options ([#27381](https://github.com/gatsbyjs/gatsby/issues/27381)) ([0073fb1](https://github.com/gatsbyjs/gatsby/commit/0073fb167e7ccddefbff8872b5b9bd488660804d))
|
|
29
|
+
|
|
6
30
|
## [2.24.80](https://github.com/gatsbyjs/gatsby/compare/gatsby@2.24.79...gatsby@2.24.80) (2020-10-16)
|
|
7
31
|
|
|
8
32
|
### Bug Fixes
|
|
@@ -130,16 +130,20 @@ async function validatePluginOptions({
|
|
|
130
130
|
}
|
|
131
131
|
|
|
132
132
|
try {
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
133
|
+
if (typeof plugin.pluginOptions === `undefined`) {
|
|
134
|
+
return null;
|
|
135
|
+
}
|
|
136
|
+
|
|
136
137
|
if (!optionsSchema.describe().keys.plugins) {
|
|
138
|
+
// All plugins have "plugins: []"" added to their options in load.ts, even if they
|
|
139
|
+
// do not have subplugins. We add plugins to the schema if it does not exist already
|
|
140
|
+
// to make sure they pass validation.
|
|
137
141
|
optionsSchema = optionsSchema.append({
|
|
138
142
|
plugins: _gatsbyPluginUtils.Joi.array().length(0)
|
|
139
143
|
});
|
|
140
144
|
}
|
|
141
145
|
|
|
142
|
-
await (0, _gatsbyPluginUtils.validateOptionsSchema)(optionsSchema, plugin.pluginOptions);
|
|
146
|
+
plugin.pluginOptions = await (0, _gatsbyPluginUtils.validateOptionsSchema)(optionsSchema, plugin.pluginOptions);
|
|
143
147
|
} catch (error) {
|
|
144
148
|
if (error instanceof _gatsbyPluginUtils.Joi.ValidationError) {
|
|
145
149
|
_reporter.default.error({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/bootstrap/load-plugins/validate.ts"],"names":["getGatsbyUpgradeVersion","entries","reduce","version","entry","api","semver","gt","getBadExports","plugin","pluginAPIKeys","apis","badExports","concat","_","difference","map","e","exportName","pluginName","name","pluginVersion","getErrorContext","exportType","currentAPIs","latestAPIs","ex","gatsbyUpgradeVersion","errors","fixes","forEach","similarities","stringSimilarity","findBestMatch","isDefaultPlugin","message","push","bestMatch","rating","target","sourceMessage","length","filter","Boolean","join","handleBadExports","hasBadExports","Object","keys","find","toPairs","badItem","context","reporter","error","id","validatePluginOptions","flattenedPlugins","Promise","all","nodeAPIs","indexOf","gatsbyNode","require","resolve","pluginOptionsSchema","optionsSchema","Joi","isSchema","type","warn","describe","plugins","append","array","pluginOptions","ValidationError","validationErrors","details","process","exit","collatePluginAPIs","node","browser","ssr","browserAPIs","ssrAPIs","pluginNodeExports","mode","pluginBrowserExports","pluginSSRExports","intersection","handleMultipleReplaceRenderers","rendererPlugins","includes","console","log","env","NODE_ENV","ignorable","slice","messages","fp","i","skipSSR","m","warnOnIncompatiblePeerDependency","packageJSON","gatsbyPeerDependency","get","satisfies","gatsbyVersion","includePrerelease"],"mappings":"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","sourcesContent":["import _ from \"lodash\"\nimport * as semver from \"semver\"\nimport * as stringSimilarity from \"string-similarity\"\nimport { version as gatsbyVersion } from \"gatsby/package.json\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { validateOptionsSchema, Joi } from \"gatsby-plugin-utils\"\nimport { resolveModuleExports } from \"../resolve-module-exports\"\nimport { getLatestAPIs } from \"../../utils/get-latest-apis\"\nimport { GatsbyNode } from \"../../../\"\nimport { IPluginInfo, IFlattenedPlugin } from \"./types\"\n\ninterface IApi {\n version?: string\n}\n\nexport interface IEntry {\n exportName: string\n pluginName: string\n pluginVersion: string\n api?: IApi\n}\n\nexport type ExportType = \"node\" | \"browser\" | \"ssr\"\n\ntype IEntryMap = {\n [exportType in ExportType]: Array<IEntry>\n}\n\nexport type ICurrentAPIs = {\n [exportType in ExportType]: Array<string>\n}\n\nconst getGatsbyUpgradeVersion = (entries: ReadonlyArray<IEntry>): string =>\n entries.reduce((version, entry) => {\n if (entry.api && entry.api.version) {\n return semver.gt(entry.api.version, version || `0.0.0`)\n ? entry.api.version\n : version\n }\n return version\n }, ``)\n\n// Given a plugin object, an array of the API names it exports and an\n// array of valid API names, return an array of invalid API exports.\nfunction getBadExports(\n plugin: IPluginInfo,\n pluginAPIKeys: ReadonlyArray<string>,\n apis: ReadonlyArray<string>\n): Array<IEntry> {\n let badExports: Array<IEntry> = []\n // Discover any exports from plugins which are not \"known\"\n badExports = badExports.concat(\n _.difference(pluginAPIKeys, apis).map(e => {\n return {\n exportName: e,\n pluginName: plugin.name,\n pluginVersion: plugin.version,\n }\n })\n )\n return badExports\n}\n\nfunction getErrorContext(\n badExports: Array<IEntry>,\n exportType: ExportType,\n currentAPIs: ICurrentAPIs,\n latestAPIs: { [exportType in ExportType]: { [exportName: string]: IApi } }\n): {\n errors: Array<string>\n entries: Array<IEntry>\n exportType: ExportType\n fixes: Array<string>\n sourceMessage: string\n} {\n const entries = badExports.map(ex => {\n return {\n ...ex,\n api: latestAPIs[exportType][ex.exportName],\n }\n })\n\n const gatsbyUpgradeVersion = getGatsbyUpgradeVersion(entries)\n const errors: Array<string> = []\n const fixes = gatsbyUpgradeVersion\n ? [`npm install gatsby@^${gatsbyUpgradeVersion}`]\n : []\n\n entries.forEach(entry => {\n const similarities = stringSimilarity.findBestMatch(\n entry.exportName,\n currentAPIs[exportType]\n )\n const isDefaultPlugin = entry.pluginName == `default-site-plugin`\n\n const message = entry.api\n ? entry.api.version\n ? `was introduced in gatsby@${entry.api.version}`\n : `is not available in your version of Gatsby`\n : `is not a known API`\n\n if (isDefaultPlugin) {\n errors.push(\n `- Your local gatsby-${exportType}.js is using the API \"${entry.exportName}\" which ${message}.`\n )\n } else {\n errors.push(\n `- The plugin ${entry.pluginName}@${entry.pluginVersion} is using the API \"${entry.exportName}\" which ${message}.`\n )\n }\n\n if (similarities.bestMatch.rating > 0.5) {\n fixes.push(\n `Rename \"${entry.exportName}\" -> \"${similarities.bestMatch.target}\"`\n )\n }\n })\n\n return {\n errors,\n entries,\n exportType,\n fixes,\n // note: this is a fallback if gatsby-cli is not updated with structured error\n sourceMessage: [\n `Your plugins must export known APIs from their gatsby-node.js.`,\n ]\n .concat(errors)\n .concat(\n fixes.length > 0\n ? [`\\n`, `Some of the following may help fix the error(s):`, ...fixes]\n : []\n )\n .filter(Boolean)\n .join(`\\n`),\n }\n}\n\nexport async function handleBadExports({\n currentAPIs,\n badExports,\n}: {\n currentAPIs: ICurrentAPIs\n badExports: { [api in ExportType]: Array<IEntry> }\n}): Promise<void> {\n const hasBadExports = Object.keys(badExports).find(\n api => badExports[api].length > 0\n )\n if (hasBadExports) {\n const latestAPIs = await getLatestAPIs()\n // Output error messages for all bad exports\n _.toPairs(badExports).forEach(badItem => {\n const [exportType, entries] = badItem\n if (entries.length > 0) {\n const context = getErrorContext(\n entries,\n exportType as keyof typeof badExports,\n currentAPIs,\n latestAPIs\n )\n reporter.error({\n id: `11329`,\n context,\n })\n }\n })\n }\n}\n\nexport async function validatePluginOptions({\n flattenedPlugins,\n}: {\n flattenedPlugins: Array<IPluginInfo & Partial<IFlattenedPlugin>>\n}): Promise<void> {\n const errors = (\n await Promise.all(\n flattenedPlugins.map(\n async (plugin): Promise<boolean | null> => {\n if (plugin.nodeAPIs?.indexOf(`pluginOptionsSchema`) === -1)\n return null\n\n const gatsbyNode = require(`${plugin.resolve}/gatsby-node`)\n if (!gatsbyNode.pluginOptionsSchema) return null\n\n let optionsSchema = (gatsbyNode.pluginOptionsSchema as Exclude<\n GatsbyNode[\"pluginOptionsSchema\"],\n undefined\n >)({\n Joi,\n })\n\n // Validate correct usage of pluginOptionsSchema\n if (!Joi.isSchema(optionsSchema) || optionsSchema.type !== `object`) {\n reporter.warn(\n `Plugin \"${plugin.name}\" has an invalid options schema so we cannot verify your configuration for it.`\n )\n return null\n }\n\n try {\n // All plugins have \"plugins: []\"\" added to their options in load.ts, even if they\n // do not have subplugins. We add plugins to the schema if it does not exist already\n // to make sure they pass validation.\n if (!optionsSchema.describe().keys.plugins) {\n optionsSchema = optionsSchema.append({\n plugins: Joi.array().length(0),\n })\n }\n\n await validateOptionsSchema(optionsSchema, plugin.pluginOptions)\n } catch (error) {\n if (error instanceof Joi.ValidationError) {\n reporter.error({\n id: `11331`,\n context: {\n validationErrors: error.details,\n pluginName: plugin.name,\n },\n })\n\n return true\n }\n\n throw error\n }\n\n return null\n }\n )\n )\n ).filter(Boolean)\n\n if (errors.length > 0) {\n process.exit(1)\n }\n}\n\n/**\n * Identify which APIs each plugin exports\n */\nexport function collatePluginAPIs({\n currentAPIs,\n flattenedPlugins,\n}: {\n currentAPIs: ICurrentAPIs\n flattenedPlugins: Array<IPluginInfo & Partial<IFlattenedPlugin>>\n}): { flattenedPlugins: Array<IFlattenedPlugin>; badExports: IEntryMap } {\n // Get a list of bad exports\n const badExports: IEntryMap = {\n node: [],\n browser: [],\n ssr: [],\n }\n\n flattenedPlugins.forEach(plugin => {\n plugin.nodeAPIs = []\n plugin.browserAPIs = []\n plugin.ssrAPIs = []\n\n // Discover which APIs this plugin implements and store an array against\n // the plugin node itself *and* in an API to plugins map for faster lookups\n // later.\n const pluginNodeExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-node`,\n {\n mode: `require`,\n }\n )\n const pluginBrowserExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-browser`\n )\n const pluginSSRExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-ssr`\n )\n\n if (pluginNodeExports.length > 0) {\n plugin.nodeAPIs = _.intersection(pluginNodeExports, currentAPIs.node)\n badExports.node = badExports.node.concat(\n getBadExports(plugin, pluginNodeExports, currentAPIs.node)\n ) // Collate any bad exports\n }\n\n if (pluginBrowserExports.length > 0) {\n plugin.browserAPIs = _.intersection(\n pluginBrowserExports,\n currentAPIs.browser\n )\n badExports.browser = badExports.browser.concat(\n getBadExports(plugin, pluginBrowserExports, currentAPIs.browser)\n ) // Collate any bad exports\n }\n\n if (pluginSSRExports.length > 0) {\n plugin.ssrAPIs = _.intersection(pluginSSRExports, currentAPIs.ssr)\n badExports.ssr = badExports.ssr.concat(\n getBadExports(plugin, pluginSSRExports, currentAPIs.ssr)\n ) // Collate any bad exports\n }\n })\n\n return {\n flattenedPlugins: flattenedPlugins as Array<IFlattenedPlugin>,\n badExports,\n }\n}\n\nexport const handleMultipleReplaceRenderers = ({\n flattenedPlugins,\n}: {\n flattenedPlugins: Array<IFlattenedPlugin>\n}): Array<IFlattenedPlugin> => {\n // multiple replaceRenderers may cause problems at build time\n const rendererPlugins = flattenedPlugins\n .filter(plugin => plugin.ssrAPIs.includes(`replaceRenderer`))\n .map(plugin => plugin.name)\n if (rendererPlugins.length > 1) {\n if (rendererPlugins.includes(`default-site-plugin`)) {\n reporter.warn(`replaceRenderer API found in these plugins:`)\n reporter.warn(rendererPlugins.join(`, `))\n reporter.warn(\n `This might be an error, see: https://www.gatsbyjs.org/docs/debugging-replace-renderer-api/`\n )\n } else {\n console.log(``)\n reporter.error(\n `Gatsby's replaceRenderer API is implemented by multiple plugins:`\n )\n reporter.error(rendererPlugins.join(`, `))\n reporter.error(`This will break your build`)\n reporter.error(\n `See: https://www.gatsbyjs.org/docs/debugging-replace-renderer-api/`\n )\n if (process.env.NODE_ENV === `production`) process.exit(1)\n }\n\n // Now update plugin list so only final replaceRenderer will run\n const ignorable = rendererPlugins.slice(0, -1)\n\n // For each plugin in ignorable, set a skipSSR flag to true\n // This prevents apiRunnerSSR() from attempting to run it later\n const messages: Array<string> = []\n flattenedPlugins.forEach((fp, i) => {\n if (ignorable.includes(fp.name)) {\n messages.push(\n `Duplicate replaceRenderer found, skipping gatsby-ssr.js for plugin: ${fp.name}`\n )\n flattenedPlugins[i].skipSSR = true\n }\n })\n if (messages.length > 0) {\n console.log(``)\n messages.forEach(m => reporter.warn(m))\n console.log(``)\n }\n }\n\n return flattenedPlugins\n}\n\nexport function warnOnIncompatiblePeerDependency(\n name: string,\n packageJSON: object\n): void {\n // Note: In the future the peer dependency should be enforced for all plugins.\n const gatsbyPeerDependency = _.get(packageJSON, `peerDependencies.gatsby`)\n if (\n gatsbyPeerDependency &&\n !semver.satisfies(gatsbyVersion, gatsbyPeerDependency, {\n includePrerelease: true,\n })\n ) {\n reporter.warn(\n `Plugin ${name} is not compatible with your gatsby version ${gatsbyVersion} - It requires gatsby@${gatsbyPeerDependency}`\n )\n }\n}\n"],"file":"validate.js"}
|
|
1
|
+
{"version":3,"sources":["../../../src/bootstrap/load-plugins/validate.ts"],"names":["getGatsbyUpgradeVersion","entries","reduce","version","entry","api","semver","gt","getBadExports","plugin","pluginAPIKeys","apis","badExports","concat","_","difference","map","e","exportName","pluginName","name","pluginVersion","getErrorContext","exportType","currentAPIs","latestAPIs","ex","gatsbyUpgradeVersion","errors","fixes","forEach","similarities","stringSimilarity","findBestMatch","isDefaultPlugin","message","push","bestMatch","rating","target","sourceMessage","length","filter","Boolean","join","handleBadExports","hasBadExports","Object","keys","find","toPairs","badItem","context","reporter","error","id","validatePluginOptions","flattenedPlugins","Promise","all","nodeAPIs","indexOf","gatsbyNode","require","resolve","pluginOptionsSchema","optionsSchema","Joi","isSchema","type","warn","pluginOptions","describe","plugins","append","array","ValidationError","validationErrors","details","process","exit","collatePluginAPIs","node","browser","ssr","browserAPIs","ssrAPIs","pluginNodeExports","mode","pluginBrowserExports","pluginSSRExports","intersection","handleMultipleReplaceRenderers","rendererPlugins","includes","console","log","env","NODE_ENV","ignorable","slice","messages","fp","i","skipSSR","m","warnOnIncompatiblePeerDependency","packageJSON","gatsbyPeerDependency","get","satisfies","gatsbyVersion","includePrerelease"],"mappings":"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","sourcesContent":["import _ from \"lodash\"\nimport * as semver from \"semver\"\nimport * as stringSimilarity from \"string-similarity\"\nimport { version as gatsbyVersion } from \"gatsby/package.json\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { validateOptionsSchema, Joi } from \"gatsby-plugin-utils\"\nimport { resolveModuleExports } from \"../resolve-module-exports\"\nimport { getLatestAPIs } from \"../../utils/get-latest-apis\"\nimport { GatsbyNode } from \"../../../\"\nimport { IPluginInfo, IFlattenedPlugin } from \"./types\"\n\ninterface IApi {\n version?: string\n}\n\nexport interface IEntry {\n exportName: string\n pluginName: string\n pluginVersion: string\n api?: IApi\n}\n\nexport type ExportType = \"node\" | \"browser\" | \"ssr\"\n\ntype IEntryMap = {\n [exportType in ExportType]: Array<IEntry>\n}\n\nexport type ICurrentAPIs = {\n [exportType in ExportType]: Array<string>\n}\n\nconst getGatsbyUpgradeVersion = (entries: ReadonlyArray<IEntry>): string =>\n entries.reduce((version, entry) => {\n if (entry.api && entry.api.version) {\n return semver.gt(entry.api.version, version || `0.0.0`)\n ? entry.api.version\n : version\n }\n return version\n }, ``)\n\n// Given a plugin object, an array of the API names it exports and an\n// array of valid API names, return an array of invalid API exports.\nfunction getBadExports(\n plugin: IPluginInfo,\n pluginAPIKeys: ReadonlyArray<string>,\n apis: ReadonlyArray<string>\n): Array<IEntry> {\n let badExports: Array<IEntry> = []\n // Discover any exports from plugins which are not \"known\"\n badExports = badExports.concat(\n _.difference(pluginAPIKeys, apis).map(e => {\n return {\n exportName: e,\n pluginName: plugin.name,\n pluginVersion: plugin.version,\n }\n })\n )\n return badExports\n}\n\nfunction getErrorContext(\n badExports: Array<IEntry>,\n exportType: ExportType,\n currentAPIs: ICurrentAPIs,\n latestAPIs: { [exportType in ExportType]: { [exportName: string]: IApi } }\n): {\n errors: Array<string>\n entries: Array<IEntry>\n exportType: ExportType\n fixes: Array<string>\n sourceMessage: string\n} {\n const entries = badExports.map(ex => {\n return {\n ...ex,\n api: latestAPIs[exportType][ex.exportName],\n }\n })\n\n const gatsbyUpgradeVersion = getGatsbyUpgradeVersion(entries)\n const errors: Array<string> = []\n const fixes = gatsbyUpgradeVersion\n ? [`npm install gatsby@^${gatsbyUpgradeVersion}`]\n : []\n\n entries.forEach(entry => {\n const similarities = stringSimilarity.findBestMatch(\n entry.exportName,\n currentAPIs[exportType]\n )\n const isDefaultPlugin = entry.pluginName == `default-site-plugin`\n\n const message = entry.api\n ? entry.api.version\n ? `was introduced in gatsby@${entry.api.version}`\n : `is not available in your version of Gatsby`\n : `is not a known API`\n\n if (isDefaultPlugin) {\n errors.push(\n `- Your local gatsby-${exportType}.js is using the API \"${entry.exportName}\" which ${message}.`\n )\n } else {\n errors.push(\n `- The plugin ${entry.pluginName}@${entry.pluginVersion} is using the API \"${entry.exportName}\" which ${message}.`\n )\n }\n\n if (similarities.bestMatch.rating > 0.5) {\n fixes.push(\n `Rename \"${entry.exportName}\" -> \"${similarities.bestMatch.target}\"`\n )\n }\n })\n\n return {\n errors,\n entries,\n exportType,\n fixes,\n // note: this is a fallback if gatsby-cli is not updated with structured error\n sourceMessage: [\n `Your plugins must export known APIs from their gatsby-node.js.`,\n ]\n .concat(errors)\n .concat(\n fixes.length > 0\n ? [`\\n`, `Some of the following may help fix the error(s):`, ...fixes]\n : []\n )\n .filter(Boolean)\n .join(`\\n`),\n }\n}\n\nexport async function handleBadExports({\n currentAPIs,\n badExports,\n}: {\n currentAPIs: ICurrentAPIs\n badExports: { [api in ExportType]: Array<IEntry> }\n}): Promise<void> {\n const hasBadExports = Object.keys(badExports).find(\n api => badExports[api].length > 0\n )\n if (hasBadExports) {\n const latestAPIs = await getLatestAPIs()\n // Output error messages for all bad exports\n _.toPairs(badExports).forEach(badItem => {\n const [exportType, entries] = badItem\n if (entries.length > 0) {\n const context = getErrorContext(\n entries,\n exportType as keyof typeof badExports,\n currentAPIs,\n latestAPIs\n )\n reporter.error({\n id: `11329`,\n context,\n })\n }\n })\n }\n}\n\nexport async function validatePluginOptions({\n flattenedPlugins,\n}: {\n flattenedPlugins: Array<IPluginInfo & Partial<IFlattenedPlugin>>\n}): Promise<void> {\n const errors = (\n await Promise.all(\n flattenedPlugins.map(\n async (plugin): Promise<boolean | null> => {\n if (plugin.nodeAPIs?.indexOf(`pluginOptionsSchema`) === -1)\n return null\n\n const gatsbyNode = require(`${plugin.resolve}/gatsby-node`)\n if (!gatsbyNode.pluginOptionsSchema) return null\n\n let optionsSchema = (gatsbyNode.pluginOptionsSchema as Exclude<\n GatsbyNode[\"pluginOptionsSchema\"],\n undefined\n >)({\n Joi,\n })\n\n // Validate correct usage of pluginOptionsSchema\n if (!Joi.isSchema(optionsSchema) || optionsSchema.type !== `object`) {\n reporter.warn(\n `Plugin \"${plugin.name}\" has an invalid options schema so we cannot verify your configuration for it.`\n )\n return null\n }\n\n try {\n if (typeof plugin.pluginOptions === `undefined`) {\n return null\n }\n\n if (!optionsSchema.describe().keys.plugins) {\n // All plugins have \"plugins: []\"\" added to their options in load.ts, even if they\n // do not have subplugins. We add plugins to the schema if it does not exist already\n // to make sure they pass validation.\n optionsSchema = optionsSchema.append({\n plugins: Joi.array().length(0),\n })\n }\n\n plugin.pluginOptions = await validateOptionsSchema(\n optionsSchema,\n plugin.pluginOptions\n )\n } catch (error) {\n if (error instanceof Joi.ValidationError) {\n reporter.error({\n id: `11331`,\n context: {\n validationErrors: error.details,\n pluginName: plugin.name,\n },\n })\n\n return true\n }\n\n throw error\n }\n\n return null\n }\n )\n )\n ).filter(Boolean)\n\n if (errors.length > 0) {\n process.exit(1)\n }\n}\n\n/**\n * Identify which APIs each plugin exports\n */\nexport function collatePluginAPIs({\n currentAPIs,\n flattenedPlugins,\n}: {\n currentAPIs: ICurrentAPIs\n flattenedPlugins: Array<IPluginInfo & Partial<IFlattenedPlugin>>\n}): { flattenedPlugins: Array<IFlattenedPlugin>; badExports: IEntryMap } {\n // Get a list of bad exports\n const badExports: IEntryMap = {\n node: [],\n browser: [],\n ssr: [],\n }\n\n flattenedPlugins.forEach(plugin => {\n plugin.nodeAPIs = []\n plugin.browserAPIs = []\n plugin.ssrAPIs = []\n\n // Discover which APIs this plugin implements and store an array against\n // the plugin node itself *and* in an API to plugins map for faster lookups\n // later.\n const pluginNodeExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-node`,\n {\n mode: `require`,\n }\n )\n const pluginBrowserExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-browser`\n )\n const pluginSSRExports = resolveModuleExports(\n `${plugin.resolve}/gatsby-ssr`\n )\n\n if (pluginNodeExports.length > 0) {\n plugin.nodeAPIs = _.intersection(pluginNodeExports, currentAPIs.node)\n badExports.node = badExports.node.concat(\n getBadExports(plugin, pluginNodeExports, currentAPIs.node)\n ) // Collate any bad exports\n }\n\n if (pluginBrowserExports.length > 0) {\n plugin.browserAPIs = _.intersection(\n pluginBrowserExports,\n currentAPIs.browser\n )\n badExports.browser = badExports.browser.concat(\n getBadExports(plugin, pluginBrowserExports, currentAPIs.browser)\n ) // Collate any bad exports\n }\n\n if (pluginSSRExports.length > 0) {\n plugin.ssrAPIs = _.intersection(pluginSSRExports, currentAPIs.ssr)\n badExports.ssr = badExports.ssr.concat(\n getBadExports(plugin, pluginSSRExports, currentAPIs.ssr)\n ) // Collate any bad exports\n }\n })\n\n return {\n flattenedPlugins: flattenedPlugins as Array<IFlattenedPlugin>,\n badExports,\n }\n}\n\nexport const handleMultipleReplaceRenderers = ({\n flattenedPlugins,\n}: {\n flattenedPlugins: Array<IFlattenedPlugin>\n}): Array<IFlattenedPlugin> => {\n // multiple replaceRenderers may cause problems at build time\n const rendererPlugins = flattenedPlugins\n .filter(plugin => plugin.ssrAPIs.includes(`replaceRenderer`))\n .map(plugin => plugin.name)\n if (rendererPlugins.length > 1) {\n if (rendererPlugins.includes(`default-site-plugin`)) {\n reporter.warn(`replaceRenderer API found in these plugins:`)\n reporter.warn(rendererPlugins.join(`, `))\n reporter.warn(\n `This might be an error, see: https://www.gatsbyjs.org/docs/debugging-replace-renderer-api/`\n )\n } else {\n console.log(``)\n reporter.error(\n `Gatsby's replaceRenderer API is implemented by multiple plugins:`\n )\n reporter.error(rendererPlugins.join(`, `))\n reporter.error(`This will break your build`)\n reporter.error(\n `See: https://www.gatsbyjs.org/docs/debugging-replace-renderer-api/`\n )\n if (process.env.NODE_ENV === `production`) process.exit(1)\n }\n\n // Now update plugin list so only final replaceRenderer will run\n const ignorable = rendererPlugins.slice(0, -1)\n\n // For each plugin in ignorable, set a skipSSR flag to true\n // This prevents apiRunnerSSR() from attempting to run it later\n const messages: Array<string> = []\n flattenedPlugins.forEach((fp, i) => {\n if (ignorable.includes(fp.name)) {\n messages.push(\n `Duplicate replaceRenderer found, skipping gatsby-ssr.js for plugin: ${fp.name}`\n )\n flattenedPlugins[i].skipSSR = true\n }\n })\n if (messages.length > 0) {\n console.log(``)\n messages.forEach(m => reporter.warn(m))\n console.log(``)\n }\n }\n\n return flattenedPlugins\n}\n\nexport function warnOnIncompatiblePeerDependency(\n name: string,\n packageJSON: object\n): void {\n // Note: In the future the peer dependency should be enforced for all plugins.\n const gatsbyPeerDependency = _.get(packageJSON, `peerDependencies.gatsby`)\n if (\n gatsbyPeerDependency &&\n !semver.satisfies(gatsbyVersion, gatsbyPeerDependency, {\n includePrerelease: true,\n })\n ) {\n reporter.warn(\n `Plugin ${name} is not compatible with your gatsby version ${gatsbyVersion} - It requires gatsby@${gatsbyPeerDependency}`\n )\n }\n}\n"],"file":"validate.js"}
|
package/dist/commands/build.js
CHANGED
|
@@ -320,7 +320,9 @@ module.exports = async function build(program) {
|
|
|
320
320
|
_reporter.default.info(`.cache/deletedPages.txt created`);
|
|
321
321
|
}
|
|
322
322
|
|
|
323
|
-
if (await (0, _feedback.
|
|
323
|
+
if (await (0, _feedback.userGetsSevenDayFeedback)()) {
|
|
324
|
+
(0, _feedback.showSevenDayFeedbackRequest)();
|
|
325
|
+
} else if (await (0, _feedback.userPassesFeedbackRequestHeuristic)()) {
|
|
324
326
|
(0, _feedback.showFeedbackRequest)();
|
|
325
327
|
}
|
|
326
328
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/build.ts"],"names":["cachedPageData","cachedWebpackCompilationHash","process","env","GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES","pageData","webpackCompilationHash","module","exports","build","program","report","setVerbose","verbose","profile","warn","name","sitePackageJson","sitePath","directory","lastRun","Date","now","pid","publicDir","path","join","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","exitCode","buildSpan","span","setTag","gatsbyNodeGraphQLFunction","parentSpan","graphqlRunner","GraphQLRunner","store","collectStats","graphqlTracing","queryIds","graphql","buildActivityTimer","activityTimer","stats","err","panic","Stage","BuildJavascript","end","workerPool","WorkerPool","create","hash","getState","appDataUtil","exists","dispatch","type","payload","rewriteActivityTimer","write","pages","forEach","_value","key","has","boundActionCreators","removePageData","id","isTrackingEnabled","bundleSizes","toJson","assets","filter","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","setProgramStatus","db","saveState","pagePaths","keys","buildUtils","getChangedPageDataKeys","info","stripIndent","buildHTMLActivityProgress","createProgress","length","stage","BuildHTML","activity","context","errorPath","ref","match","message","error","deletedPageKeys","deletePageDataActivityTimer","collectRemovedPageData","removePageFiles","postBuildActivityTimer","uptime","finish","argv","includes","createdFilesPath","resolve","createdFilesContent","deletedFilesPath","deletedFilesContent","fs","writeFile"],"mappings":"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","sourcesContent":["import path from \"path\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport signalExit from \"signal-exit\"\nimport fs from \"fs-extra\"\nimport telemetry from \"gatsby-telemetry\"\n\nimport { buildHTML } from \"./build-html\"\nimport { buildProductionBundle } from \"./build-javascript\"\nimport { bootstrap } from \"../bootstrap\"\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport { GraphQLRunner } from \"../query/graphql-runner\"\nimport { copyStaticDirs } from \"../utils/get-static-dir\"\nimport { initTracer, stopTracer } from \"../utils/tracer\"\nimport db from \"../db\"\nimport { store, readState } from \"../redux\"\nimport * as appDataUtil from \"../utils/app-data\"\nimport { flush as flushPendingPageDataWrites } from \"../utils/page-data\"\nimport * as WorkerPool from \"../utils/worker/pool\"\nimport { structureWebpackErrors } from \"../utils/webpack-error-utils\"\nimport {\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n} from \"../utils/feedback\"\nimport * as buildUtils from \"./build-utils\"\nimport { boundActionCreators } from \"../redux/actions\"\nimport { waitUntilAllJobsComplete } from \"../utils/wait-until-jobs-complete\"\nimport { IProgram, Stage } from \"./types\"\nimport { PackageJson } from \"../..\"\nimport {\n calculateDirtyQueries,\n runStaticQueries,\n runPageQueries,\n writeOutRequires,\n} from \"../services\"\nimport {\n markWebpackStatusAsPending,\n markWebpackStatusAsDone,\n} from \"../utils/webpack-status\"\nimport { updateSiteMetadata } from \"gatsby-core-utils\"\n\nlet cachedPageData\nlet cachedWebpackCompilationHash\nif (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const { pageData, webpackCompilationHash } = readState()\n // extract only data that we need to reuse and let v8 garbage collect rest of state\n cachedPageData = pageData\n cachedWebpackCompilationHash = webpackCompilationHash\n}\n\ninterface IBuildArgs extends IProgram {\n directory: string\n sitePackageJson: PackageJson\n prefixPaths: boolean\n noUglify: boolean\n profile: boolean\n graphqlTracing: boolean\n openTracingConfigFile: string\n}\n\nmodule.exports = async function build(program: IBuildArgs): Promise<void> {\n report.setVerbose(program.verbose)\n\n if (program.profile) {\n report.warn(\n `React Profiling is enabled. This can have a performance impact. See https://www.gatsbyjs.org/docs/profiling-site-performance-with-react-profiler/#performance-impact`\n )\n }\n\n await updateSiteMetadata({\n name: program.sitePackageJson.name,\n sitePath: program.directory,\n lastRun: Date.now(),\n pid: process.pid,\n })\n\n markWebpackStatusAsPending()\n\n const publicDir = path.join(program.directory, `public`)\n initTracer(program.openTracingConfigFile)\n const buildActivity = report.phantomActivity(`build`)\n buildActivity.start()\n\n telemetry.trackCli(`BUILD_START`)\n signalExit(exitCode => {\n telemetry.trackCli(`BUILD_END`, { exitCode })\n })\n\n const buildSpan = buildActivity.span\n buildSpan.setTag(`directory`, program.directory)\n\n const { gatsbyNodeGraphQLFunction } = await bootstrap({\n program,\n parentSpan: buildSpan,\n })\n\n const graphqlRunner = new GraphQLRunner(store, {\n collectStats: true,\n graphqlTracing: program.graphqlTracing,\n })\n\n const { queryIds } = await calculateDirtyQueries({ store })\n\n await runStaticQueries({\n queryIds,\n parentSpan: buildSpan,\n store,\n graphqlRunner,\n })\n\n await runPageQueries({\n queryIds,\n graphqlRunner,\n parentSpan: buildSpan,\n store,\n })\n\n await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n let stats\n try {\n stats = await buildProductionBundle(program, buildActivityTimer.span)\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err))\n } finally {\n buildActivityTimer.end()\n }\n\n const workerPool = WorkerPool.create()\n\n const webpackCompilationHash = stats.hash\n if (\n webpackCompilationHash !== store.getState().webpackCompilationHash ||\n !appDataUtil.exists(publicDir)\n ) {\n store.dispatch({\n type: `SET_WEBPACK_COMPILATION_HASH`,\n payload: webpackCompilationHash,\n })\n\n const rewriteActivityTimer = report.activityTimer(\n `Rewriting compilation hashes`,\n {\n parentSpan: buildSpan,\n }\n )\n rewriteActivityTimer.start()\n\n await appDataUtil.write(publicDir, webpackCompilationHash)\n\n rewriteActivityTimer.end()\n }\n\n await flushPendingPageDataWrites()\n markWebpackStatusAsDone()\n\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const { pages } = store.getState()\n if (cachedPageData) {\n cachedPageData.forEach((_value, key) => {\n if (!pages.has(key)) {\n boundActionCreators.removePageData({\n id: key,\n })\n }\n })\n }\n }\n\n if (telemetry.isTrackingEnabled()) {\n // transform asset size to kB (from bytes) to fit 64 bit to numbers\n const bundleSizes = stats\n .toJson({ assets: true })\n .assets.filter(asset => asset.name.endsWith(`.js`))\n .map(asset => asset.size / 1000)\n const pageDataSizes = [...store.getState().pageDataStats.values()]\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n bundleStats: telemetry.aggregateStats(bundleSizes),\n pageDataStats: telemetry.aggregateStats(pageDataSizes),\n queryStats: graphqlRunner.getStats(),\n })\n }\n\n boundActionCreators.setProgramStatus(`BOOTSTRAP_QUERY_RUNNING_FINISHED`)\n\n await db.saveState()\n\n await waitUntilAllJobsComplete()\n\n // we need to save it again to make sure our latest state has been saved\n await db.saveState()\n\n let pagePaths = [...store.getState().pages.keys()]\n\n // Rebuild subset of pages if user opt into GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES\n // if there were no source files (for example components, static queries, etc) changes since last build, otherwise rebuild all pages\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n if (\n cachedWebpackCompilationHash === store.getState().webpackCompilationHash\n ) {\n pagePaths = buildUtils.getChangedPageDataKeys(\n store.getState(),\n cachedPageData\n )\n } else if (cachedWebpackCompilationHash) {\n report.info(\n report.stripIndent(`\n One or more of your source files have changed since the last time you ran Gatsby. All\n pages will be rebuilt.\n `)\n )\n }\n }\n\n const buildHTMLActivityProgress = report.createProgress(\n `Building static HTML for pages`,\n pagePaths.length,\n 0,\n {\n parentSpan: buildSpan,\n }\n )\n buildHTMLActivityProgress.start()\n try {\n await buildHTML({\n program,\n stage: Stage.BuildHTML,\n pagePaths,\n activity: buildHTMLActivityProgress,\n workerPool,\n })\n } catch (err) {\n let id = `95313` // TODO: verify error IDs exist\n const context = {\n errorPath: err.context && err.context.path,\n ref: ``,\n }\n\n const match = err.message.match(\n /ReferenceError: (window|document|localStorage|navigator|alert|location) is not defined/i\n )\n if (match && match[1]) {\n id = `95312`\n context.ref = match[1]\n }\n\n buildHTMLActivityProgress.panic({\n id,\n context,\n error: err,\n })\n }\n buildHTMLActivityProgress.end()\n\n let deletedPageKeys: Array<string> = []\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const deletePageDataActivityTimer = report.activityTimer(\n `Delete previous page data`\n )\n deletePageDataActivityTimer.start()\n deletedPageKeys = buildUtils.collectRemovedPageData(\n store.getState(),\n cachedPageData\n )\n await buildUtils.removePageFiles(publicDir, deletedPageKeys)\n\n deletePageDataActivityTimer.end()\n }\n\n const postBuildActivityTimer = report.activityTimer(`onPostBuild`, {\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.start()\n await apiRunnerNode(`onPostBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.end()\n\n // Make sure we saved the latest state so we have all jobs cached\n await db.saveState()\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildSpan.finish()\n await stopTracer()\n workerPool.end()\n buildActivity.end()\n\n if (\n process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES &&\n process.argv.includes(`--log-pages`)\n ) {\n if (pagePaths.length) {\n report.info(\n `Built pages:\\n${pagePaths\n .map(path => `Updated page: ${path}`)\n .join(`\\n`)}`\n )\n }\n\n if (deletedPageKeys.length) {\n report.info(\n `Deleted pages:\\n${deletedPageKeys\n .map(path => `Deleted page: ${path}`)\n .join(`\\n`)}`\n )\n }\n }\n\n if (\n process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES &&\n process.argv.includes(`--write-to-file`)\n ) {\n const createdFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `newPages.txt`\n )\n const createdFilesContent = pagePaths.length\n ? `${pagePaths.join(`\\n`)}\\n`\n : ``\n\n const deletedFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `deletedPages.txt`\n )\n const deletedFilesContent = deletedPageKeys.length\n ? `${deletedPageKeys.join(`\\n`)}\\n`\n : ``\n\n await fs.writeFile(createdFilesPath, createdFilesContent, `utf8`)\n report.info(`.cache/newPages.txt created`)\n\n await fs.writeFile(deletedFilesPath, deletedFilesContent, `utf8`)\n report.info(`.cache/deletedPages.txt created`)\n }\n\n if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"file":"build.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/commands/build.ts"],"names":["cachedPageData","cachedWebpackCompilationHash","process","env","GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES","pageData","webpackCompilationHash","module","exports","build","program","report","setVerbose","verbose","profile","warn","name","sitePackageJson","sitePath","directory","lastRun","Date","now","pid","publicDir","path","join","openTracingConfigFile","buildActivity","phantomActivity","start","telemetry","trackCli","exitCode","buildSpan","span","setTag","gatsbyNodeGraphQLFunction","parentSpan","graphqlRunner","GraphQLRunner","store","collectStats","graphqlTracing","queryIds","graphql","buildActivityTimer","activityTimer","stats","err","panic","Stage","BuildJavascript","end","workerPool","WorkerPool","create","hash","getState","appDataUtil","exists","dispatch","type","payload","rewriteActivityTimer","write","pages","forEach","_value","key","has","boundActionCreators","removePageData","id","isTrackingEnabled","bundleSizes","toJson","assets","filter","asset","endsWith","map","size","pageDataSizes","pageDataStats","values","addSiteMeasurement","bundleStats","aggregateStats","queryStats","getStats","setProgramStatus","db","saveState","pagePaths","keys","buildUtils","getChangedPageDataKeys","info","stripIndent","buildHTMLActivityProgress","createProgress","length","stage","BuildHTML","activity","context","errorPath","ref","match","message","error","deletedPageKeys","deletePageDataActivityTimer","collectRemovedPageData","removePageFiles","postBuildActivityTimer","uptime","finish","argv","includes","createdFilesPath","resolve","createdFilesContent","deletedFilesPath","deletedFilesContent","fs","writeFile"],"mappings":"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","sourcesContent":["import path from \"path\"\nimport report from \"gatsby-cli/lib/reporter\"\nimport signalExit from \"signal-exit\"\nimport fs from \"fs-extra\"\nimport telemetry from \"gatsby-telemetry\"\n\nimport { buildHTML } from \"./build-html\"\nimport { buildProductionBundle } from \"./build-javascript\"\nimport { bootstrap } from \"../bootstrap\"\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport { GraphQLRunner } from \"../query/graphql-runner\"\nimport { copyStaticDirs } from \"../utils/get-static-dir\"\nimport { initTracer, stopTracer } from \"../utils/tracer\"\nimport db from \"../db\"\nimport { store, readState } from \"../redux\"\nimport * as appDataUtil from \"../utils/app-data\"\nimport { flush as flushPendingPageDataWrites } from \"../utils/page-data\"\nimport * as WorkerPool from \"../utils/worker/pool\"\nimport { structureWebpackErrors } from \"../utils/webpack-error-utils\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport * as buildUtils from \"./build-utils\"\nimport { boundActionCreators } from \"../redux/actions\"\nimport { waitUntilAllJobsComplete } from \"../utils/wait-until-jobs-complete\"\nimport { IProgram, Stage } from \"./types\"\nimport { PackageJson } from \"../..\"\nimport {\n calculateDirtyQueries,\n runStaticQueries,\n runPageQueries,\n writeOutRequires,\n} from \"../services\"\nimport {\n markWebpackStatusAsPending,\n markWebpackStatusAsDone,\n} from \"../utils/webpack-status\"\nimport { updateSiteMetadata } from \"gatsby-core-utils\"\n\nlet cachedPageData\nlet cachedWebpackCompilationHash\nif (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const { pageData, webpackCompilationHash } = readState()\n // extract only data that we need to reuse and let v8 garbage collect rest of state\n cachedPageData = pageData\n cachedWebpackCompilationHash = webpackCompilationHash\n}\n\ninterface IBuildArgs extends IProgram {\n directory: string\n sitePackageJson: PackageJson\n prefixPaths: boolean\n noUglify: boolean\n profile: boolean\n graphqlTracing: boolean\n openTracingConfigFile: string\n}\n\nmodule.exports = async function build(program: IBuildArgs): Promise<void> {\n report.setVerbose(program.verbose)\n\n if (program.profile) {\n report.warn(\n `React Profiling is enabled. This can have a performance impact. See https://www.gatsbyjs.org/docs/profiling-site-performance-with-react-profiler/#performance-impact`\n )\n }\n\n await updateSiteMetadata({\n name: program.sitePackageJson.name,\n sitePath: program.directory,\n lastRun: Date.now(),\n pid: process.pid,\n })\n\n markWebpackStatusAsPending()\n\n const publicDir = path.join(program.directory, `public`)\n initTracer(program.openTracingConfigFile)\n const buildActivity = report.phantomActivity(`build`)\n buildActivity.start()\n\n telemetry.trackCli(`BUILD_START`)\n signalExit(exitCode => {\n telemetry.trackCli(`BUILD_END`, { exitCode })\n })\n\n const buildSpan = buildActivity.span\n buildSpan.setTag(`directory`, program.directory)\n\n const { gatsbyNodeGraphQLFunction } = await bootstrap({\n program,\n parentSpan: buildSpan,\n })\n\n const graphqlRunner = new GraphQLRunner(store, {\n collectStats: true,\n graphqlTracing: program.graphqlTracing,\n })\n\n const { queryIds } = await calculateDirtyQueries({ store })\n\n await runStaticQueries({\n queryIds,\n parentSpan: buildSpan,\n store,\n graphqlRunner,\n })\n\n await runPageQueries({\n queryIds,\n graphqlRunner,\n parentSpan: buildSpan,\n store,\n })\n\n await writeOutRequires({\n store,\n parentSpan: buildSpan,\n })\n\n await apiRunnerNode(`onPreBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n\n // Copy files from the static directory to\n // an equivalent static directory within public.\n copyStaticDirs()\n\n const buildActivityTimer = report.activityTimer(\n `Building production JavaScript and CSS bundles`,\n { parentSpan: buildSpan }\n )\n buildActivityTimer.start()\n let stats\n try {\n stats = await buildProductionBundle(program, buildActivityTimer.span)\n } catch (err) {\n buildActivityTimer.panic(structureWebpackErrors(Stage.BuildJavascript, err))\n } finally {\n buildActivityTimer.end()\n }\n\n const workerPool = WorkerPool.create()\n\n const webpackCompilationHash = stats.hash\n if (\n webpackCompilationHash !== store.getState().webpackCompilationHash ||\n !appDataUtil.exists(publicDir)\n ) {\n store.dispatch({\n type: `SET_WEBPACK_COMPILATION_HASH`,\n payload: webpackCompilationHash,\n })\n\n const rewriteActivityTimer = report.activityTimer(\n `Rewriting compilation hashes`,\n {\n parentSpan: buildSpan,\n }\n )\n rewriteActivityTimer.start()\n\n await appDataUtil.write(publicDir, webpackCompilationHash)\n\n rewriteActivityTimer.end()\n }\n\n await flushPendingPageDataWrites()\n markWebpackStatusAsDone()\n\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const { pages } = store.getState()\n if (cachedPageData) {\n cachedPageData.forEach((_value, key) => {\n if (!pages.has(key)) {\n boundActionCreators.removePageData({\n id: key,\n })\n }\n })\n }\n }\n\n if (telemetry.isTrackingEnabled()) {\n // transform asset size to kB (from bytes) to fit 64 bit to numbers\n const bundleSizes = stats\n .toJson({ assets: true })\n .assets.filter(asset => asset.name.endsWith(`.js`))\n .map(asset => asset.size / 1000)\n const pageDataSizes = [...store.getState().pageDataStats.values()]\n\n telemetry.addSiteMeasurement(`BUILD_END`, {\n bundleStats: telemetry.aggregateStats(bundleSizes),\n pageDataStats: telemetry.aggregateStats(pageDataSizes),\n queryStats: graphqlRunner.getStats(),\n })\n }\n\n boundActionCreators.setProgramStatus(`BOOTSTRAP_QUERY_RUNNING_FINISHED`)\n\n await db.saveState()\n\n await waitUntilAllJobsComplete()\n\n // we need to save it again to make sure our latest state has been saved\n await db.saveState()\n\n let pagePaths = [...store.getState().pages.keys()]\n\n // Rebuild subset of pages if user opt into GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES\n // if there were no source files (for example components, static queries, etc) changes since last build, otherwise rebuild all pages\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n if (\n cachedWebpackCompilationHash === store.getState().webpackCompilationHash\n ) {\n pagePaths = buildUtils.getChangedPageDataKeys(\n store.getState(),\n cachedPageData\n )\n } else if (cachedWebpackCompilationHash) {\n report.info(\n report.stripIndent(`\n One or more of your source files have changed since the last time you ran Gatsby. All\n pages will be rebuilt.\n `)\n )\n }\n }\n\n const buildHTMLActivityProgress = report.createProgress(\n `Building static HTML for pages`,\n pagePaths.length,\n 0,\n {\n parentSpan: buildSpan,\n }\n )\n buildHTMLActivityProgress.start()\n try {\n await buildHTML({\n program,\n stage: Stage.BuildHTML,\n pagePaths,\n activity: buildHTMLActivityProgress,\n workerPool,\n })\n } catch (err) {\n let id = `95313` // TODO: verify error IDs exist\n const context = {\n errorPath: err.context && err.context.path,\n ref: ``,\n }\n\n const match = err.message.match(\n /ReferenceError: (window|document|localStorage|navigator|alert|location) is not defined/i\n )\n if (match && match[1]) {\n id = `95312`\n context.ref = match[1]\n }\n\n buildHTMLActivityProgress.panic({\n id,\n context,\n error: err,\n })\n }\n buildHTMLActivityProgress.end()\n\n let deletedPageKeys: Array<string> = []\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n const deletePageDataActivityTimer = report.activityTimer(\n `Delete previous page data`\n )\n deletePageDataActivityTimer.start()\n deletedPageKeys = buildUtils.collectRemovedPageData(\n store.getState(),\n cachedPageData\n )\n await buildUtils.removePageFiles(publicDir, deletedPageKeys)\n\n deletePageDataActivityTimer.end()\n }\n\n const postBuildActivityTimer = report.activityTimer(`onPostBuild`, {\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.start()\n await apiRunnerNode(`onPostBuild`, {\n graphql: gatsbyNodeGraphQLFunction,\n parentSpan: buildSpan,\n })\n postBuildActivityTimer.end()\n\n // Make sure we saved the latest state so we have all jobs cached\n await db.saveState()\n\n report.info(`Done building in ${process.uptime()} sec`)\n\n buildSpan.finish()\n await stopTracer()\n workerPool.end()\n buildActivity.end()\n\n if (\n process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES &&\n process.argv.includes(`--log-pages`)\n ) {\n if (pagePaths.length) {\n report.info(\n `Built pages:\\n${pagePaths\n .map(path => `Updated page: ${path}`)\n .join(`\\n`)}`\n )\n }\n\n if (deletedPageKeys.length) {\n report.info(\n `Deleted pages:\\n${deletedPageKeys\n .map(path => `Deleted page: ${path}`)\n .join(`\\n`)}`\n )\n }\n }\n\n if (\n process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES &&\n process.argv.includes(`--write-to-file`)\n ) {\n const createdFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `newPages.txt`\n )\n const createdFilesContent = pagePaths.length\n ? `${pagePaths.join(`\\n`)}\\n`\n : ``\n\n const deletedFilesPath = path.resolve(\n `${program.directory}/.cache`,\n `deletedPages.txt`\n )\n const deletedFilesContent = deletedPageKeys.length\n ? `${deletedPageKeys.join(`\\n`)}\\n`\n : ``\n\n await fs.writeFile(createdFilesPath, createdFilesContent, `utf8`)\n report.info(`.cache/newPages.txt created`)\n\n await fs.writeFile(deletedFilesPath, deletedFilesContent, `utf8`)\n report.info(`.cache/deletedPages.txt created`)\n }\n\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"file":"build.js"}
|
package/dist/commands/clean.js
CHANGED
|
@@ -25,7 +25,9 @@ module.exports = async function clean(program) {
|
|
|
25
25
|
await Promise.all(directories.map(dir => _fsExtra.default.remove(_path.default.join(directory, dir))));
|
|
26
26
|
report.info(`Successfully deleted directories`);
|
|
27
27
|
|
|
28
|
-
if (await (0, _feedback.
|
|
28
|
+
if (await (0, _feedback.userGetsSevenDayFeedback)()) {
|
|
29
|
+
(0, _feedback.showSevenDayFeedbackRequest)();
|
|
30
|
+
} else if (await (0, _feedback.userPassesFeedbackRequestHeuristic)()) {
|
|
29
31
|
(0, _feedback.showFeedbackRequest)();
|
|
30
32
|
}
|
|
31
33
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/clean.ts"],"names":["module","exports","clean","program","directory","report","directories","name","filter","Boolean","info","join","Promise","all","map","dir","fs","remove","path"],"mappings":";;;;AAAA;;AACA;;AACA;;AAEA;;
|
|
1
|
+
{"version":3,"sources":["../../src/commands/clean.ts"],"names":["module","exports","clean","program","directory","report","directories","name","filter","Boolean","info","join","Promise","all","map","dir","fs","remove","path"],"mappings":";;;;AAAA;;AACA;;AACA;;AAEA;;AAQAA,MAAM,CAACC,OAAP,GAAiB,eAAeC,KAAf,CAAqBC,OAArB,EAAuD;AACtE,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA;AAAb,MAAwBF,OAA9B;AAEA,QAAMG,WAAW,GAAG,CACjB,QADiB,EAEjB,QAFiB,EAGlB;AACA,6BAAa;AACXC,IAAAA,IAAI,EAAG;AADI,GAAb,CAJkB,EAOlB,2BAAa;AACXA,IAAAA,IAAI,EAAG;AADI,GAAb,CAPkB,EAUlBC,MAVkB,CAUXC,OAVW,CAApB;AAYAJ,EAAAA,MAAM,CAACK,IAAP,CAAa,YAAWJ,WAAW,CAACK,IAAZ,CAAkB,IAAlB,CAAuB,EAA/C;AAEA,QAAMC,OAAO,CAACC,GAAR,CACJP,WAAW,CAACQ,GAAZ,CAAgBC,GAAG,IAAIC,iBAAGC,MAAH,CAAUC,cAAKP,IAAL,CAAUP,SAAV,EAAqBW,GAArB,CAAV,CAAvB,CADI,CAAN;AAIAV,EAAAA,MAAM,CAACK,IAAP,CAAa,kCAAb;;AAEA,MAAI,MAAM,yCAAV,EAAsC;AACpC;AACD,GAFD,MAEO,IAAI,MAAM,mDAAV,EAAgD;AACrD;AACD;AACF,CA5BD","sourcesContent":["import fs from \"fs-extra\"\nimport path from \"path\"\nimport findCacheDir from \"find-cache-dir\"\n\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport { IProgram } from \"./types\"\n\nmodule.exports = async function clean(program: IProgram): Promise<void> {\n const { directory, report } = program\n\n const directories = [\n `.cache`,\n `public`,\n // Ensure we clean babel loader cache\n findCacheDir({\n name: `babel-loader`,\n }),\n findCacheDir({\n name: `terser-webpack-plugin`,\n }),\n ].filter(Boolean)\n\n report.info(`Deleting ${directories.join(`, `)}`)\n\n await Promise.all(\n directories.map(dir => fs.remove(path.join(directory, dir)))\n )\n\n report.info(`Successfully deleted directories`)\n\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n}\n"],"file":"clean.js"}
|
|
@@ -91,7 +91,9 @@ module.exports = async program => {
|
|
|
91
91
|
|
|
92
92
|
|
|
93
93
|
process.on(`SIGINT`, async () => {
|
|
94
|
-
if (await (0, _feedback.
|
|
94
|
+
if (await (0, _feedback.userGetsSevenDayFeedback)()) {
|
|
95
|
+
(0, _feedback.showSevenDayFeedbackRequest)();
|
|
96
|
+
} else if (await (0, _feedback.userPassesFeedbackRequestHeuristic)()) {
|
|
95
97
|
(0, _feedback.showFeedbackRequest)();
|
|
96
98
|
}
|
|
97
99
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/commands/develop-process.ts"],"names":["tracer","setTimeout","process","send","setInterval","type","telemetry","trackCli","siteMeasurements","pagesCount","store","getState","pages","size","on","msg","action","exit","payload","openDebuggerPort","debugInfo","break","inspector","open","port","undefined","module","exports","program","reporter","setVerbose","verbose","env","GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES","panic","chalk","yellow","cyan","openTracingConfigFile","pendingActivity","id","startBackgroundUpdate","parseInt","e","message","app","parentSpan","startSpan","machine","developMachine","withContext","service","start"],"mappings":";;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;
|
|
1
|
+
{"version":3,"sources":["../../src/commands/develop-process.ts"],"names":["tracer","setTimeout","process","send","setInterval","type","telemetry","trackCli","siteMeasurements","pagesCount","store","getState","pages","size","on","msg","action","exit","payload","openDebuggerPort","debugInfo","break","inspector","open","port","undefined","module","exports","program","reporter","setVerbose","verbose","env","GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES","panic","chalk","yellow","cyan","openTracingConfigFile","pendingActivity","id","startBackgroundUpdate","parseInt","e","message","app","parentSpan","startSpan","machine","developMachine","withContext","service","start"],"mappings":";;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAMA;;AACA;;AAGA;;AACA;;AACA;;AACA;;AAEA,MAAMA,MAAM,GAAG,gCAAf,C,CAEA;AAEA;AACA;AACA;;AACAC,UAAU,CAAC,MAAM;AACf;AACD,CAFS,EAEP,KAFO,CAAV,C,CAIA;AACA;AACA;AACA;AACA;;AACA,IAAIC,OAAO,CAACC,IAAZ,EAAkB;AAChBC,EAAAA,WAAW,CAAC,MAAM;AAChB;AACAF,IAAAA,OAAO,CAACC,IAAR,CAAc;AACZE,MAAAA,IAAI,EAAG;AADK,KAAd;AAGD,GALU,EAKR,IALQ,CAAX;AAMD;;AAED,yBAAO,MAAM;AACXC,2BAAUC,QAAV,CAAoB,cAApB,EAAmC;AACjCC,IAAAA,gBAAgB,EAAE;AAChBC,MAAAA,UAAU,EAAEC,aAAMC,QAAN,GAAiBC,KAAjB,CAAuBC;AADnB;AADe,GAAnC;AAKD,CAND;AAQAX,OAAO,CAACY,EAAR,CAAY,SAAZ,EAAsBC,GAAG,IAAI;AAC3B,MAAIA,GAAG,CAACV,IAAJ,KAAc,SAAd,IAA0BU,GAAG,CAACC,MAAJ,CAAWX,IAAX,KAAqB,MAAnD,EAA0D;AACxDH,IAAAA,OAAO,CAACe,IAAR,CAAaF,GAAG,CAACC,MAAJ,CAAWE,OAAxB;AACD;AACF,CAJD;;AAUA,MAAMC,gBAAgB,GAAIC,SAAD,IAAiC;AACxD,MAAIA,SAAS,CAACC,KAAd,EAAqB;AACnBC,uBAAUC,IAAV,CAAeH,SAAS,CAACI,IAAzB,EAA+BC,SAA/B,EAA0C,IAA1C,EADmB,CAEnB;;;AACA;AACD,GAJD,MAIO;AACLH,uBAAUC,IAAV,CAAeH,SAAS,CAACI,IAAzB;AACD;AACF,CARD;;AAUAE,MAAM,CAACC,OAAP,GAAiB,MAAOC,OAAP,IAAgD;AAC/DC,oBAASC,UAAT,CAAoBF,OAAO,CAACG,OAA5B;;AAEA,MAAIH,OAAO,CAACR,SAAZ,EAAuB;AACrBD,IAAAA,gBAAgB,CAACS,OAAO,CAACR,SAAT,CAAhB;AACD,GAL8D,CAO/D;AACA;AACA;;;AACAlB,EAAAA,OAAO,CAACY,EAAR,CACG,QADH,EAEE,YAA2B;AACzB,QAAI,MAAM,yCAAV,EAAsC;AACpC;AACD,KAFD,MAEO,IAAI,MAAM,mDAAV,EAAgD;AACrD;AACD;;AACDZ,IAAAA,OAAO,CAACe,IAAR,CAAa,CAAb;AACD,GATH;;AAYA,MAAIf,OAAO,CAAC8B,GAAR,CAAYC,8CAAhB,EAAgE;AAC9DJ,sBAASK,KAAT,CACG,YAAWC,eAAMC,MAAN,CACT,gDADS,CAEV,0BAAyBD,eAAME,IAAN,CACxB,gBADwB,CAEzB,wBAAuBF,eAAME,IAAN,CAAY,cAAZ,CAA2B,EALtD;AAOD;;AACD,0BAAWT,OAAO,CAACU,qBAAnB;AACA;;AACAT,oBAASU,eAAT,CAAyB;AAAEC,IAAAA,EAAE,EAAG;AAAP,GAAzB;;AACAlC,2BAAUC,QAAV,CAAoB,eAApB;;AACAD,2BAAUmC,qBAAV;;AAEA,QAAMjB,IAAI,GACR,OAAOI,OAAO,CAACJ,IAAf,KAAyB,QAAzB,GAAmCkB,QAAQ,CAACd,OAAO,CAACJ,IAAT,EAAe,EAAf,CAA3C,GAAgEI,OAAO,CAACJ,IAD1E;;AAGA,MAAI;AACFI,IAAAA,OAAO,CAACJ,IAAR,GAAe,MAAM,wDAAyBA,IAAzB,CAArB;AACD,GAFD,CAEE,OAAOmB,CAAP,EAAU;AACV,QAAIA,CAAC,CAACC,OAAF,KAAe,eAAnB,EAAmC;AACjC1C,MAAAA,OAAO,CAACe,IAAR,CAAa,CAAb;AACD;;AAED,UAAM0B,CAAN;AACD;;AAED,QAAME,GAAG,GAAG,uBAAZ;AACA,QAAMC,UAAU,GAAG9C,MAAM,CAAC+C,SAAP,CAAkB,WAAlB,CAAnB;;AAEA,QAAMC,OAAO,GAAGC,wBAAeC,WAAf,CAA2B;AACzCtB,IAAAA,OADyC;AAEzCkB,IAAAA,UAFyC;AAGzCD,IAAAA;AAHyC,GAA3B,CAAhB;;AAMA,QAAMM,OAAO,GAAG,uBAAUH,OAAV,CAAhB;;AAEA,MAAIpB,OAAO,CAACG,OAAZ,EAAqB;AACnB,6CAAeoB,OAAf;AACD;;AAEDA,EAAAA,OAAO,CAACC,KAAR;AACD,CAlED","sourcesContent":["import { syncStaticDir } from \"../utils/get-static-dir\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport chalk from \"chalk\"\nimport telemetry from \"gatsby-telemetry\"\nimport express from \"express\"\nimport inspector from \"inspector\"\nimport { initTracer } from \"../utils/tracer\"\nimport { detectPortInUseAndPrompt } from \"../utils/detect-port-in-use-and-prompt\"\nimport onExit from \"signal-exit\"\nimport {\n userGetsSevenDayFeedback,\n userPassesFeedbackRequestHeuristic,\n showFeedbackRequest,\n showSevenDayFeedbackRequest,\n} from \"../utils/feedback\"\nimport { markWebpackStatusAsPending } from \"../utils/webpack-status\"\nimport { store } from \"../redux\"\n\nimport { IProgram, IDebugInfo } from \"./types\"\nimport { interpret } from \"xstate\"\nimport { globalTracer } from \"opentracing\"\nimport { developMachine } from \"../state-machines/develop\"\nimport { logTransitions } from \"../utils/state-machine-logging\"\n\nconst tracer = globalTracer()\n\n// const isInteractive = process.stdout.isTTY\n\n// Watch the static directory and copy files to public as they're added or\n// changed. Wait 10 seconds so copying doesn't interfere with the regular\n// bootstrap.\nsetTimeout(() => {\n syncStaticDir()\n}, 10000)\n\n// Time for another story...\n// When the parent process is killed by SIGKILL, Node doesm't kill spawned child processes\n// Hence, we peiodically send a heart beat to the parent to check if it is still alive\n// This will crash with Error [ERR_IPC_CHANNEL_CLOSED]: Channel closed\n// and kill the orphaned child process as a result\nif (process.send) {\n setInterval(() => {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n process.send!({\n type: `HEARTBEAT`,\n })\n }, 1000)\n}\n\nonExit(() => {\n telemetry.trackCli(`DEVELOP_STOP`, {\n siteMeasurements: {\n pagesCount: store.getState().pages.size,\n },\n })\n})\n\nprocess.on(`message`, msg => {\n if (msg.type === `COMMAND` && msg.action.type === `EXIT`) {\n process.exit(msg.action.payload)\n }\n})\n\ninterface IDevelopArgs extends IProgram {\n debugInfo: IDebugInfo | null\n}\n\nconst openDebuggerPort = (debugInfo: IDebugInfo): void => {\n if (debugInfo.break) {\n inspector.open(debugInfo.port, undefined, true)\n // eslint-disable-next-line no-debugger\n debugger\n } else {\n inspector.open(debugInfo.port)\n }\n}\n\nmodule.exports = async (program: IDevelopArgs): Promise<void> => {\n reporter.setVerbose(program.verbose)\n\n if (program.debugInfo) {\n openDebuggerPort(program.debugInfo)\n }\n\n // We want to prompt the feedback request when users quit develop\n // assuming they pass the heuristic check to know they are a user\n // we want to request feedback from, and we're not annoying them.\n process.on(\n `SIGINT`,\n async (): Promise<void> => {\n if (await userGetsSevenDayFeedback()) {\n showSevenDayFeedbackRequest()\n } else if (await userPassesFeedbackRequestHeuristic()) {\n showFeedbackRequest()\n }\n process.exit(0)\n }\n )\n\n if (process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES) {\n reporter.panic(\n `The flag ${chalk.yellow(\n `GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES`\n )} is not available with ${chalk.cyan(\n `gatsby develop`\n )}, please retry using ${chalk.cyan(`gatsby build`)}`\n )\n }\n initTracer(program.openTracingConfigFile)\n markWebpackStatusAsPending()\n reporter.pendingActivity({ id: `webpack-develop` })\n telemetry.trackCli(`DEVELOP_START`)\n telemetry.startBackgroundUpdate()\n\n const port =\n typeof program.port === `string` ? parseInt(program.port, 10) : program.port\n\n try {\n program.port = await detectPortInUseAndPrompt(port)\n } catch (e) {\n if (e.message === `USER_REJECTED`) {\n process.exit(0)\n }\n\n throw e\n }\n\n const app = express()\n const parentSpan = tracer.startSpan(`bootstrap`)\n\n const machine = developMachine.withContext({\n program,\n parentSpan,\n app,\n })\n\n const service = interpret(machine)\n\n if (program.verbose) {\n logTransitions(service)\n }\n\n service.start()\n}\n"],"file":"develop-process.js"}
|
|
@@ -244,8 +244,18 @@ async function initialize({
|
|
|
244
244
|
}
|
|
245
245
|
|
|
246
246
|
const cacheDirectory = `${program.directory}/.cache`;
|
|
247
|
+
const publicDirectory = `${program.directory}/public`;
|
|
248
|
+
const cacheIsCorrupt = _fsExtra.default.existsSync(cacheDirectory) && !_fsExtra.default.existsSync(publicDirectory);
|
|
247
249
|
|
|
248
|
-
if (
|
|
250
|
+
if (cacheIsCorrupt) {
|
|
251
|
+
_reporter.default.info(_reporter.default.stripIndent`
|
|
252
|
+
We've detected that the Gatsby cache is incomplete (the .cache directory exists
|
|
253
|
+
but the public directory does not). As a precaution, we're deleting your site's
|
|
254
|
+
cache to ensure there's no stale data.
|
|
255
|
+
`);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
if (!oldPluginsHash || pluginsHash !== oldPluginsHash || cacheIsCorrupt) {
|
|
249
259
|
try {
|
|
250
260
|
// Attempt to empty dir if remove fails,
|
|
251
261
|
// like when directory is mount point
|
|
@@ -281,7 +291,7 @@ async function initialize({
|
|
|
281
291
|
|
|
282
292
|
await _fsExtra.default.ensureDir(cacheDirectory); // Ensure the public/static directory
|
|
283
293
|
|
|
284
|
-
await _fsExtra.default.ensureDir(`${
|
|
294
|
+
await _fsExtra.default.ensureDir(`${publicDirectory}/static`);
|
|
285
295
|
activity.end();
|
|
286
296
|
activity = _reporter.default.activityTimer(`copy gatsby files`, {
|
|
287
297
|
parentSpan
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/services/initialize.ts"],"names":["process","on","reason","reporter","panic","initialize","program","args","parentSpan","setStore","store","directory","browserslist","dispatch","type","payload","activityForJobs","emitter","phantomActivity","start","onEndJob","getState","jobs","active","length","end","activity","activityTimer","configModule","configFilePath","config","id","context","configName","path","__experimentalThemes","warn","themes","useLegacyThemes","rootDir","plugins","polyfill","internalActions","setSiteConfig","flattenedPlugins","pluginsStr","_","uniq","map","p","name","version","telemetry","decorateEvent","span","env","GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES","NODE_ENV","pluginVersions","hashes","Promise","all","catch","pluginsHash","crypto","createHash","update","JSON","stringify","concat","digest","state","oldPluginsHash","status","PLUGINS_HASH","info","stripIndent","cacheDirectory","fs","remove","emptyDir","e","error","pluginCachesPurged","ensureDir","srcDir","__dirname","siteDir","tryRequire","copy","ensureDirSync","err","hasAPIFile","plugin","skipSSR","undefined","envAPIs","require","resolve","join","Array","isArray","isResolved","ssrPlugins","options","pluginOptions","filter","browserPlugins","browserPluginsRequires","relativePluginPath","relative","browserAPIRunner","sSRAPIRunner","readFileSync","ssrPluginsRequires","writeFileSync","extensions","apiResults","traceId","flattenDeep","workerPool","WorkerPool","create"],"mappings":"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","sourcesContent":["import _ from \"lodash\"\nimport { slash } from \"gatsby-core-utils\"\nimport fs from \"fs-extra\"\nimport md5File from \"md5-file\"\nimport crypto from \"crypto\"\nimport del from \"del\"\nimport path from \"path\"\nimport telemetry from \"gatsby-telemetry\"\n\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport { getBrowsersList } from \"../utils/browserslist\"\nimport { Store, AnyAction } from \"redux\"\nimport { preferDefault } from \"../bootstrap/prefer-default\"\nimport * as WorkerPool from \"../utils/worker/pool\"\nimport JestWorker from \"jest-worker\"\nimport { startPluginRunner } from \"../redux/plugin-runner\"\nimport { loadPlugins } from \"../bootstrap/load-plugins\"\nimport { store, emitter } from \"../redux\"\nimport loadThemes from \"../bootstrap/load-themes\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { getConfigFile } from \"../bootstrap/get-config-file\"\nimport { removeStaleJobs } from \"../bootstrap/remove-stale-jobs\"\nimport { IPluginInfoOptions } from \"../bootstrap/load-plugins/types\"\nimport { internalActions } from \"../redux/actions\"\nimport { IGatsbyState } from \"../redux/types\"\nimport { IBuildContext } from \"./types\"\n\ninterface IPluginResolution {\n resolve: string\n options: IPluginInfoOptions\n}\n\n// Show stack trace on unhandled promises.\nprocess.on(`unhandledRejection`, (reason: unknown) => {\n // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33636\n reporter.panic((reason as Error) || `Unhandled rejection`)\n})\n\n// Override console.log to add the source file + line number.\n// Useful for debugging if you lose a console.log somewhere.\n// Otherwise leave commented out.\n// require(`../bootstrap/log-line-function`)\n\nexport async function initialize({\n program: args,\n parentSpan,\n}: IBuildContext): Promise<{\n store: Store<IGatsbyState, AnyAction>\n workerPool: JestWorker\n}> {\n if (!args) {\n reporter.panic(`Missing program args`)\n }\n\n /* Time for a little story...\n * When running `gatsby develop`, the globally installed gatsby-cli starts\n * and sets up a Redux store (which is where logs are now stored). When gatsby\n * finds your project's locally installed gatsby-cli package in node_modules,\n * it switches over. This instance will have a separate redux store. We need to\n * ensure that the correct store is used which is why we call setStore\n * (/packages/gatsby-cli/src/reporter/redux/index.js)\n *\n * This function\n * - copies over the logs from the global gatsby-cli to the local one\n * - sets the store to the local one (so that further actions dispatched by\n * the global gatsby-cli are handled by the local one)\n */\n if (args.setStore) {\n args.setStore(store)\n }\n\n // Start plugin runner which listens to the store\n // and invokes Gatsby API based on actions.\n startPluginRunner()\n\n const directory = slash(args.directory)\n\n const program = {\n ...args,\n browserslist: getBrowsersList(directory),\n // Fix program directory path for windows env.\n directory,\n }\n\n store.dispatch({\n type: `SET_PROGRAM`,\n payload: program,\n })\n\n let activityForJobs\n\n emitter.on(`CREATE_JOB`, () => {\n if (!activityForJobs) {\n activityForJobs = reporter.phantomActivity(`Running jobs`)\n activityForJobs.start()\n }\n })\n\n const onEndJob = (): void => {\n if (activityForJobs && store.getState().jobs.active.length === 0) {\n activityForJobs.end()\n activityForJobs = null\n }\n }\n\n emitter.on(`END_JOB`, onEndJob)\n\n // Try opening the site's gatsby-config.js file.\n let activity = reporter.activityTimer(`open and validate gatsby-configs`, {\n parentSpan,\n })\n activity.start()\n const { configModule, configFilePath } = await getConfigFile(\n program.directory,\n `gatsby-config`\n )\n let config = preferDefault(configModule)\n\n // The root config cannot be exported as a function, only theme configs\n if (typeof config === `function`) {\n reporter.panic({\n id: `10126`,\n context: {\n configName: `gatsby-config`,\n path: program.directory,\n },\n })\n }\n\n // theme gatsby configs can be functions or objects\n if (config && config.__experimentalThemes) {\n reporter.warn(\n `The gatsby-config key \"__experimentalThemes\" has been deprecated. Please use the \"plugins\" key instead.`\n )\n const themes = await loadThemes(config, {\n useLegacyThemes: true,\n configFilePath,\n rootDir: program.directory,\n })\n config = themes.config\n\n store.dispatch({\n type: `SET_RESOLVED_THEMES`,\n payload: themes.themes,\n })\n } else if (config) {\n const plugins = await loadThemes(config, {\n useLegacyThemes: false,\n configFilePath,\n rootDir: program.directory,\n })\n config = plugins.config\n }\n\n if (config && config.polyfill) {\n reporter.warn(\n `Support for custom Promise polyfills has been removed in Gatsby v2. We only support Babel 7's new automatic polyfilling behavior.`\n )\n }\n\n store.dispatch(internalActions.setSiteConfig(config))\n\n activity.end()\n\n // run stale jobs\n store.dispatch(removeStaleJobs(store.getState()))\n\n activity = reporter.activityTimer(`load plugins`, {\n parentSpan,\n })\n activity.start()\n const flattenedPlugins = await loadPlugins(config, program.directory)\n activity.end()\n\n // Multiple occurrences of the same name-version-pair can occur,\n // so we report an array of unique pairs\n const pluginsStr = _.uniq(flattenedPlugins.map(p => `${p.name}@${p.version}`))\n telemetry.decorateEvent(`BUILD_END`, {\n plugins: pluginsStr,\n })\n\n telemetry.decorateEvent(`DEVELOP_STOP`, {\n plugins: pluginsStr,\n })\n\n // onPreInit\n activity = reporter.activityTimer(`onPreInit`, {\n parentSpan,\n })\n activity.start()\n await apiRunnerNode(`onPreInit`, { parentSpan: activity.span })\n activity.end()\n\n // During builds, delete html and css files from the public directory as we don't want\n // deleted pages and styles from previous builds to stick around.\n if (\n !process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES &&\n process.env.NODE_ENV === `production`\n ) {\n activity = reporter.activityTimer(\n `delete html and css files from previous builds`,\n {\n parentSpan,\n }\n )\n activity.start()\n await del([\n `public/**/*.{html,css}`,\n `!public/page-data/**/*`,\n `!public/static`,\n `!public/static/**/*.{html,css}`,\n ])\n activity.end()\n }\n\n activity = reporter.activityTimer(`initialize cache`, {\n parentSpan,\n })\n activity.start()\n // Check if any plugins have been updated since our last run. If so\n // we delete the cache is there's likely been changes\n // since the previous run.\n //\n // We do this by creating a hash of all the version numbers of installed\n // plugins, the site's package.json, gatsby-config.js, and gatsby-node.js.\n // The last, gatsby-node.js, is important as many gatsby sites put important\n // logic in there e.g. generating slugs for custom pages.\n const pluginVersions = flattenedPlugins.map(p => p.version)\n const hashes: any = await Promise.all([\n !!process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES,\n md5File(`package.json`),\n md5File(`${program.directory}/gatsby-config.js`).catch(() => {}), // ignore as this file isn't required),\n md5File(`${program.directory}/gatsby-node.js`).catch(() => {}), // ignore as this file isn't required),\n ])\n const pluginsHash = crypto\n .createHash(`md5`)\n .update(JSON.stringify(pluginVersions.concat(hashes)))\n .digest(`hex`)\n const state = store.getState()\n const oldPluginsHash = state && state.status ? state.status.PLUGINS_HASH : ``\n\n // Check if anything has changed. If it has, delete the site's .cache\n // directory and tell reducers to empty themselves.\n //\n // Also if the hash isn't there, then delete things just in case something\n // is weird.\n if (oldPluginsHash && pluginsHash !== oldPluginsHash) {\n reporter.info(reporter.stripIndent`\n One or more of your plugins have changed since the last time you ran Gatsby. As\n a precaution, we're deleting your site's cache to ensure there's no stale data.\n `)\n }\n const cacheDirectory = `${program.directory}/.cache`\n if (!oldPluginsHash || pluginsHash !== oldPluginsHash) {\n try {\n // Attempt to empty dir if remove fails,\n // like when directory is mount point\n await fs.remove(cacheDirectory).catch(() => fs.emptyDir(cacheDirectory))\n } catch (e) {\n reporter.error(`Failed to remove .cache files.`, e)\n }\n // Tell reducers to delete their data (the store will already have\n // been loaded from the file system cache).\n store.dispatch({\n type: `DELETE_CACHE`,\n })\n\n // in future this should show which plugin's caches are purged\n // possibly should also have which plugins had caches\n telemetry.decorateEvent(`BUILD_END`, {\n pluginCachesPurged: [`*`],\n })\n telemetry.decorateEvent(`DEVELOP_STOP`, {\n pluginCachesPurged: [`*`],\n })\n }\n\n // Update the store with the new plugins hash.\n store.dispatch({\n type: `UPDATE_PLUGINS_HASH`,\n payload: pluginsHash,\n })\n\n // Now that we know the .cache directory is safe, initialize the cache\n // directory.\n await fs.ensureDir(cacheDirectory)\n\n // Ensure the public/static directory\n await fs.ensureDir(`${program.directory}/public/static`)\n\n activity.end()\n\n activity = reporter.activityTimer(`copy gatsby files`, {\n parentSpan,\n })\n activity.start()\n const srcDir = `${__dirname}/../../cache-dir`\n const siteDir = cacheDirectory\n const tryRequire = `${__dirname}/../utils/test-require-error.js`\n try {\n await fs.copy(srcDir, siteDir)\n await fs.copy(tryRequire, `${siteDir}/test-require-error.js`)\n await fs.ensureDirSync(`${cacheDirectory}/json`)\n\n // Ensure .cache/fragments exists and is empty. We want fragments to be\n // added on every run in response to data as fragments can only be added if\n // the data used to create the schema they're dependent on is available.\n await fs.emptyDir(`${cacheDirectory}/fragments`)\n } catch (err) {\n reporter.panic(`Unable to copy site files to .cache`, err)\n }\n\n // Find plugins which implement gatsby-browser and gatsby-ssr and write\n // out api-runners for them.\n const hasAPIFile = (env, plugin): string | undefined => {\n // The plugin loader has disabled SSR APIs for this plugin. Usually due to\n // multiple implementations of an API that can only be implemented once\n if (env === `ssr` && plugin.skipSSR === true) return undefined\n\n const envAPIs = plugin[`${env}APIs`]\n\n // Always include gatsby-browser.js files if they exist as they're\n // a handy place to include global styles and other global imports.\n try {\n if (env === `browser`) {\n return slash(\n require.resolve(path.join(plugin.resolve, `gatsby-${env}`))\n )\n }\n } catch (e) {\n // ignore\n }\n\n if (envAPIs && Array.isArray(envAPIs) && envAPIs.length > 0) {\n return slash(path.join(plugin.resolve, `gatsby-${env}`))\n }\n return undefined\n }\n\n const isResolved = (plugin): plugin is IPluginResolution => !!plugin.resolve\n\n const ssrPlugins: Array<IPluginResolution> = flattenedPlugins\n .map(plugin => {\n return {\n resolve: hasAPIFile(`ssr`, plugin),\n options: plugin.pluginOptions,\n }\n })\n .filter(isResolved)\n\n const browserPlugins: Array<IPluginResolution> = flattenedPlugins\n .map(plugin => {\n return {\n resolve: hasAPIFile(`browser`, plugin),\n options: plugin.pluginOptions,\n }\n })\n .filter(isResolved)\n\n const browserPluginsRequires = browserPlugins\n .map(plugin => {\n // we need a relative import path to keep contenthash the same if directory changes\n const relativePluginPath = path.relative(siteDir, plugin.resolve)\n return `{\n plugin: require('${slash(relativePluginPath)}'),\n options: ${JSON.stringify(plugin.options)},\n }`\n })\n .join(`,`)\n\n const browserAPIRunner = `module.exports = [${browserPluginsRequires}]\\n`\n\n let sSRAPIRunner = ``\n\n try {\n sSRAPIRunner = fs.readFileSync(`${siteDir}/api-runner-ssr.js`, `utf-8`)\n } catch (err) {\n reporter.panic(`Failed to read ${siteDir}/api-runner-ssr.js`, err)\n }\n\n const ssrPluginsRequires = ssrPlugins\n .map(\n plugin =>\n `{\n plugin: require('${plugin.resolve}'),\n options: ${JSON.stringify(plugin.options)},\n }`\n )\n .join(`,`)\n sSRAPIRunner = `var plugins = [${ssrPluginsRequires}]\\n${sSRAPIRunner}`\n\n fs.writeFileSync(\n `${siteDir}/api-runner-browser-plugins.js`,\n browserAPIRunner,\n `utf-8`\n )\n fs.writeFileSync(`${siteDir}/api-runner-ssr.js`, sSRAPIRunner, `utf-8`)\n\n activity.end()\n /**\n * Start the main bootstrap processes.\n */\n\n // onPreBootstrap\n activity = reporter.activityTimer(`onPreBootstrap`, {\n parentSpan,\n })\n activity.start()\n await apiRunnerNode(`onPreBootstrap`, {\n parentSpan: activity.span,\n })\n activity.end()\n\n // Collect resolvable extensions and attach to program.\n const extensions = [`.mjs`, `.js`, `.jsx`, `.wasm`, `.json`]\n // Change to this being an action and plugins implement `onPreBootstrap`\n // for adding extensions.\n const apiResults = await apiRunnerNode(`resolvableExtensions`, {\n traceId: `initial-resolvableExtensions`,\n parentSpan,\n })\n\n store.dispatch({\n type: `SET_PROGRAM_EXTENSIONS`,\n payload: _.flattenDeep([extensions, apiResults]),\n })\n\n const workerPool = WorkerPool.create()\n\n return {\n store,\n workerPool,\n }\n}\n"],"file":"initialize.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/services/initialize.ts"],"names":["process","on","reason","reporter","panic","initialize","program","args","parentSpan","setStore","store","directory","browserslist","dispatch","type","payload","activityForJobs","emitter","phantomActivity","start","onEndJob","getState","jobs","active","length","end","activity","activityTimer","configModule","configFilePath","config","id","context","configName","path","__experimentalThemes","warn","themes","useLegacyThemes","rootDir","plugins","polyfill","internalActions","setSiteConfig","flattenedPlugins","pluginsStr","_","uniq","map","p","name","version","telemetry","decorateEvent","span","env","GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES","NODE_ENV","pluginVersions","hashes","Promise","all","catch","pluginsHash","crypto","createHash","update","JSON","stringify","concat","digest","state","oldPluginsHash","status","PLUGINS_HASH","info","stripIndent","cacheDirectory","publicDirectory","cacheIsCorrupt","fs","existsSync","remove","emptyDir","e","error","pluginCachesPurged","ensureDir","srcDir","__dirname","siteDir","tryRequire","copy","ensureDirSync","err","hasAPIFile","plugin","skipSSR","undefined","envAPIs","require","resolve","join","Array","isArray","isResolved","ssrPlugins","options","pluginOptions","filter","browserPlugins","browserPluginsRequires","relativePluginPath","relative","browserAPIRunner","sSRAPIRunner","readFileSync","ssrPluginsRequires","writeFileSync","extensions","apiResults","traceId","flattenDeep","workerPool","WorkerPool","create"],"mappings":"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","sourcesContent":["import _ from \"lodash\"\nimport { slash } from \"gatsby-core-utils\"\nimport fs from \"fs-extra\"\nimport md5File from \"md5-file\"\nimport crypto from \"crypto\"\nimport del from \"del\"\nimport path from \"path\"\nimport telemetry from \"gatsby-telemetry\"\n\nimport apiRunnerNode from \"../utils/api-runner-node\"\nimport { getBrowsersList } from \"../utils/browserslist\"\nimport { Store, AnyAction } from \"redux\"\nimport { preferDefault } from \"../bootstrap/prefer-default\"\nimport * as WorkerPool from \"../utils/worker/pool\"\nimport JestWorker from \"jest-worker\"\nimport { startPluginRunner } from \"../redux/plugin-runner\"\nimport { loadPlugins } from \"../bootstrap/load-plugins\"\nimport { store, emitter } from \"../redux\"\nimport loadThemes from \"../bootstrap/load-themes\"\nimport reporter from \"gatsby-cli/lib/reporter\"\nimport { getConfigFile } from \"../bootstrap/get-config-file\"\nimport { removeStaleJobs } from \"../bootstrap/remove-stale-jobs\"\nimport { IPluginInfoOptions } from \"../bootstrap/load-plugins/types\"\nimport { internalActions } from \"../redux/actions\"\nimport { IGatsbyState } from \"../redux/types\"\nimport { IBuildContext } from \"./types\"\n\ninterface IPluginResolution {\n resolve: string\n options: IPluginInfoOptions\n}\n\n// Show stack trace on unhandled promises.\nprocess.on(`unhandledRejection`, (reason: unknown) => {\n // https://github.com/DefinitelyTyped/DefinitelyTyped/issues/33636\n reporter.panic((reason as Error) || `Unhandled rejection`)\n})\n\n// Override console.log to add the source file + line number.\n// Useful for debugging if you lose a console.log somewhere.\n// Otherwise leave commented out.\n// require(`../bootstrap/log-line-function`)\n\nexport async function initialize({\n program: args,\n parentSpan,\n}: IBuildContext): Promise<{\n store: Store<IGatsbyState, AnyAction>\n workerPool: JestWorker\n}> {\n if (!args) {\n reporter.panic(`Missing program args`)\n }\n\n /* Time for a little story...\n * When running `gatsby develop`, the globally installed gatsby-cli starts\n * and sets up a Redux store (which is where logs are now stored). When gatsby\n * finds your project's locally installed gatsby-cli package in node_modules,\n * it switches over. This instance will have a separate redux store. We need to\n * ensure that the correct store is used which is why we call setStore\n * (/packages/gatsby-cli/src/reporter/redux/index.js)\n *\n * This function\n * - copies over the logs from the global gatsby-cli to the local one\n * - sets the store to the local one (so that further actions dispatched by\n * the global gatsby-cli are handled by the local one)\n */\n if (args.setStore) {\n args.setStore(store)\n }\n\n // Start plugin runner which listens to the store\n // and invokes Gatsby API based on actions.\n startPluginRunner()\n\n const directory = slash(args.directory)\n\n const program = {\n ...args,\n browserslist: getBrowsersList(directory),\n // Fix program directory path for windows env.\n directory,\n }\n\n store.dispatch({\n type: `SET_PROGRAM`,\n payload: program,\n })\n\n let activityForJobs\n\n emitter.on(`CREATE_JOB`, () => {\n if (!activityForJobs) {\n activityForJobs = reporter.phantomActivity(`Running jobs`)\n activityForJobs.start()\n }\n })\n\n const onEndJob = (): void => {\n if (activityForJobs && store.getState().jobs.active.length === 0) {\n activityForJobs.end()\n activityForJobs = null\n }\n }\n\n emitter.on(`END_JOB`, onEndJob)\n\n // Try opening the site's gatsby-config.js file.\n let activity = reporter.activityTimer(`open and validate gatsby-configs`, {\n parentSpan,\n })\n activity.start()\n const { configModule, configFilePath } = await getConfigFile(\n program.directory,\n `gatsby-config`\n )\n let config = preferDefault(configModule)\n\n // The root config cannot be exported as a function, only theme configs\n if (typeof config === `function`) {\n reporter.panic({\n id: `10126`,\n context: {\n configName: `gatsby-config`,\n path: program.directory,\n },\n })\n }\n\n // theme gatsby configs can be functions or objects\n if (config && config.__experimentalThemes) {\n reporter.warn(\n `The gatsby-config key \"__experimentalThemes\" has been deprecated. Please use the \"plugins\" key instead.`\n )\n const themes = await loadThemes(config, {\n useLegacyThemes: true,\n configFilePath,\n rootDir: program.directory,\n })\n config = themes.config\n\n store.dispatch({\n type: `SET_RESOLVED_THEMES`,\n payload: themes.themes,\n })\n } else if (config) {\n const plugins = await loadThemes(config, {\n useLegacyThemes: false,\n configFilePath,\n rootDir: program.directory,\n })\n config = plugins.config\n }\n\n if (config && config.polyfill) {\n reporter.warn(\n `Support for custom Promise polyfills has been removed in Gatsby v2. We only support Babel 7's new automatic polyfilling behavior.`\n )\n }\n\n store.dispatch(internalActions.setSiteConfig(config))\n\n activity.end()\n\n // run stale jobs\n store.dispatch(removeStaleJobs(store.getState()))\n\n activity = reporter.activityTimer(`load plugins`, {\n parentSpan,\n })\n activity.start()\n const flattenedPlugins = await loadPlugins(config, program.directory)\n activity.end()\n\n // Multiple occurrences of the same name-version-pair can occur,\n // so we report an array of unique pairs\n const pluginsStr = _.uniq(flattenedPlugins.map(p => `${p.name}@${p.version}`))\n telemetry.decorateEvent(`BUILD_END`, {\n plugins: pluginsStr,\n })\n\n telemetry.decorateEvent(`DEVELOP_STOP`, {\n plugins: pluginsStr,\n })\n\n // onPreInit\n activity = reporter.activityTimer(`onPreInit`, {\n parentSpan,\n })\n activity.start()\n await apiRunnerNode(`onPreInit`, { parentSpan: activity.span })\n activity.end()\n\n // During builds, delete html and css files from the public directory as we don't want\n // deleted pages and styles from previous builds to stick around.\n if (\n !process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES &&\n process.env.NODE_ENV === `production`\n ) {\n activity = reporter.activityTimer(\n `delete html and css files from previous builds`,\n {\n parentSpan,\n }\n )\n activity.start()\n await del([\n `public/**/*.{html,css}`,\n `!public/page-data/**/*`,\n `!public/static`,\n `!public/static/**/*.{html,css}`,\n ])\n activity.end()\n }\n\n activity = reporter.activityTimer(`initialize cache`, {\n parentSpan,\n })\n activity.start()\n // Check if any plugins have been updated since our last run. If so\n // we delete the cache is there's likely been changes\n // since the previous run.\n //\n // We do this by creating a hash of all the version numbers of installed\n // plugins, the site's package.json, gatsby-config.js, and gatsby-node.js.\n // The last, gatsby-node.js, is important as many gatsby sites put important\n // logic in there e.g. generating slugs for custom pages.\n const pluginVersions = flattenedPlugins.map(p => p.version)\n const hashes: any = await Promise.all([\n !!process.env.GATSBY_EXPERIMENTAL_PAGE_BUILD_ON_DATA_CHANGES,\n md5File(`package.json`),\n md5File(`${program.directory}/gatsby-config.js`).catch(() => {}), // ignore as this file isn't required),\n md5File(`${program.directory}/gatsby-node.js`).catch(() => {}), // ignore as this file isn't required),\n ])\n const pluginsHash = crypto\n .createHash(`md5`)\n .update(JSON.stringify(pluginVersions.concat(hashes)))\n .digest(`hex`)\n const state = store.getState()\n const oldPluginsHash = state && state.status ? state.status.PLUGINS_HASH : ``\n\n // Check if anything has changed. If it has, delete the site's .cache\n // directory and tell reducers to empty themselves.\n //\n // Also if the hash isn't there, then delete things just in case something\n // is weird.\n if (oldPluginsHash && pluginsHash !== oldPluginsHash) {\n reporter.info(reporter.stripIndent`\n One or more of your plugins have changed since the last time you ran Gatsby. As\n a precaution, we're deleting your site's cache to ensure there's no stale data.\n `)\n }\n const cacheDirectory = `${program.directory}/.cache`\n const publicDirectory = `${program.directory}/public`\n const cacheIsCorrupt =\n fs.existsSync(cacheDirectory) && !fs.existsSync(publicDirectory)\n\n if (cacheIsCorrupt) {\n reporter.info(reporter.stripIndent`\n We've detected that the Gatsby cache is incomplete (the .cache directory exists\n but the public directory does not). As a precaution, we're deleting your site's\n cache to ensure there's no stale data.\n `)\n }\n\n if (!oldPluginsHash || pluginsHash !== oldPluginsHash || cacheIsCorrupt) {\n try {\n // Attempt to empty dir if remove fails,\n // like when directory is mount point\n await fs.remove(cacheDirectory).catch(() => fs.emptyDir(cacheDirectory))\n } catch (e) {\n reporter.error(`Failed to remove .cache files.`, e)\n }\n // Tell reducers to delete their data (the store will already have\n // been loaded from the file system cache).\n store.dispatch({\n type: `DELETE_CACHE`,\n })\n\n // in future this should show which plugin's caches are purged\n // possibly should also have which plugins had caches\n telemetry.decorateEvent(`BUILD_END`, {\n pluginCachesPurged: [`*`],\n })\n telemetry.decorateEvent(`DEVELOP_STOP`, {\n pluginCachesPurged: [`*`],\n })\n }\n\n // Update the store with the new plugins hash.\n store.dispatch({\n type: `UPDATE_PLUGINS_HASH`,\n payload: pluginsHash,\n })\n\n // Now that we know the .cache directory is safe, initialize the cache\n // directory.\n await fs.ensureDir(cacheDirectory)\n\n // Ensure the public/static directory\n await fs.ensureDir(`${publicDirectory}/static`)\n\n activity.end()\n\n activity = reporter.activityTimer(`copy gatsby files`, {\n parentSpan,\n })\n activity.start()\n const srcDir = `${__dirname}/../../cache-dir`\n const siteDir = cacheDirectory\n const tryRequire = `${__dirname}/../utils/test-require-error.js`\n try {\n await fs.copy(srcDir, siteDir)\n await fs.copy(tryRequire, `${siteDir}/test-require-error.js`)\n await fs.ensureDirSync(`${cacheDirectory}/json`)\n\n // Ensure .cache/fragments exists and is empty. We want fragments to be\n // added on every run in response to data as fragments can only be added if\n // the data used to create the schema they're dependent on is available.\n await fs.emptyDir(`${cacheDirectory}/fragments`)\n } catch (err) {\n reporter.panic(`Unable to copy site files to .cache`, err)\n }\n\n // Find plugins which implement gatsby-browser and gatsby-ssr and write\n // out api-runners for them.\n const hasAPIFile = (env, plugin): string | undefined => {\n // The plugin loader has disabled SSR APIs for this plugin. Usually due to\n // multiple implementations of an API that can only be implemented once\n if (env === `ssr` && plugin.skipSSR === true) return undefined\n\n const envAPIs = plugin[`${env}APIs`]\n\n // Always include gatsby-browser.js files if they exist as they're\n // a handy place to include global styles and other global imports.\n try {\n if (env === `browser`) {\n return slash(\n require.resolve(path.join(plugin.resolve, `gatsby-${env}`))\n )\n }\n } catch (e) {\n // ignore\n }\n\n if (envAPIs && Array.isArray(envAPIs) && envAPIs.length > 0) {\n return slash(path.join(plugin.resolve, `gatsby-${env}`))\n }\n return undefined\n }\n\n const isResolved = (plugin): plugin is IPluginResolution => !!plugin.resolve\n\n const ssrPlugins: Array<IPluginResolution> = flattenedPlugins\n .map(plugin => {\n return {\n resolve: hasAPIFile(`ssr`, plugin),\n options: plugin.pluginOptions,\n }\n })\n .filter(isResolved)\n\n const browserPlugins: Array<IPluginResolution> = flattenedPlugins\n .map(plugin => {\n return {\n resolve: hasAPIFile(`browser`, plugin),\n options: plugin.pluginOptions,\n }\n })\n .filter(isResolved)\n\n const browserPluginsRequires = browserPlugins\n .map(plugin => {\n // we need a relative import path to keep contenthash the same if directory changes\n const relativePluginPath = path.relative(siteDir, plugin.resolve)\n return `{\n plugin: require('${slash(relativePluginPath)}'),\n options: ${JSON.stringify(plugin.options)},\n }`\n })\n .join(`,`)\n\n const browserAPIRunner = `module.exports = [${browserPluginsRequires}]\\n`\n\n let sSRAPIRunner = ``\n\n try {\n sSRAPIRunner = fs.readFileSync(`${siteDir}/api-runner-ssr.js`, `utf-8`)\n } catch (err) {\n reporter.panic(`Failed to read ${siteDir}/api-runner-ssr.js`, err)\n }\n\n const ssrPluginsRequires = ssrPlugins\n .map(\n plugin =>\n `{\n plugin: require('${plugin.resolve}'),\n options: ${JSON.stringify(plugin.options)},\n }`\n )\n .join(`,`)\n sSRAPIRunner = `var plugins = [${ssrPluginsRequires}]\\n${sSRAPIRunner}`\n\n fs.writeFileSync(\n `${siteDir}/api-runner-browser-plugins.js`,\n browserAPIRunner,\n `utf-8`\n )\n fs.writeFileSync(`${siteDir}/api-runner-ssr.js`, sSRAPIRunner, `utf-8`)\n\n activity.end()\n /**\n * Start the main bootstrap processes.\n */\n\n // onPreBootstrap\n activity = reporter.activityTimer(`onPreBootstrap`, {\n parentSpan,\n })\n activity.start()\n await apiRunnerNode(`onPreBootstrap`, {\n parentSpan: activity.span,\n })\n activity.end()\n\n // Collect resolvable extensions and attach to program.\n const extensions = [`.mjs`, `.js`, `.jsx`, `.wasm`, `.json`]\n // Change to this being an action and plugins implement `onPreBootstrap`\n // for adding extensions.\n const apiResults = await apiRunnerNode(`resolvableExtensions`, {\n traceId: `initial-resolvableExtensions`,\n parentSpan,\n })\n\n store.dispatch({\n type: `SET_PROGRAM_EXTENSIONS`,\n payload: _.flattenDeep([extensions, apiResults]),\n })\n\n const workerPool = WorkerPool.create()\n\n return {\n store,\n workerPool,\n }\n}\n"],"file":"initialize.js"}
|
|
@@ -176,10 +176,12 @@ function getLocalReporter({
|
|
|
176
176
|
}
|
|
177
177
|
|
|
178
178
|
function extendErrorIdWithPluginName(pluginName, errorMeta) {
|
|
179
|
-
|
|
180
|
-
const id = errorMeta && errorMeta[`id`];
|
|
179
|
+
const id = errorMeta === null || errorMeta === void 0 ? void 0 : errorMeta.id;
|
|
181
180
|
|
|
182
|
-
|
|
181
|
+
if (id) {
|
|
182
|
+
const isPrefixed = id.includes(`${pluginName}_`);
|
|
183
|
+
|
|
184
|
+
if (!isPrefixed) {
|
|
183
185
|
return { ...errorMeta,
|
|
184
186
|
id: `${pluginName}_${id}`
|
|
185
187
|
};
|