Ich habe diese Frage positiv bewertet, als ich sie zum ersten Mal sah. Ich denke, sie sollte definitiv in der Produktion erstellt werden.
Leider wird componentChunkName
(der betreffende Vorlagenpfad) von Gatsby in generiert createPage
und nicht von Webpack verarbeitet.
Der Code, der generiert componentChunkName
wird , ist hier drüben : github
Ich habe versucht, den Code wie folgt zu ändern:
const { kebabCase } = require(`lodash`)
const path = require(`path`)
+ const uuidv5 = require(`uuid/v5`)
const { store } = require(`../redux`)
const generateComponentChunkName = componentPath => {
const program = store.getState().program
let directory = `/`
if (program && program.directory) {
directory = program.directory
}
const name = path.relative(directory, componentPath)
- return `component---${kebabCase(name)}`
+ return process.env.NODE_ENV === `production`
+ ? `component---${uuidv5(name, uuidv5.URL)}`
+ : `component---${kebabCase(name)}`
}
exports.generateComponentChunkName = generateComponentChunkName
Dadurch werden alle Komponentennamen im Produktionsbuild erfolgreich ausgeblendet:
app: Array [ "/app-e593b3d93932ed3a0363.js" ]
"component---11d478fe-6a55-579c-becf-625ab1e57cf4": Array [ "/component---11d478fe-6a55-579c-becf-625ab1e57cf4-76c90ae50035c52657a0.js" ]
"component---15c76861-b723-5e0a-823c-b6832aeeb0a0": Array [ "/component---15c76861-b723-5e0a-823c-b6832aeeb0a0-18eb457ba6c147e1b31b.js" ]
...
Keiner der lokalen Komponententests ist fehlgeschlagen. Mein Klick-bis-etwas-bricht-Test hat ebenfalls keine Fehler ergeben. Ich könnte später heute eine PR einreichen, um zu sehen, ob die Betreuer einige Erkenntnisse darüber haben, warum dies keine gute Idee ist.
Bearbeiten : Ich habe stattdessen ein Problem geöffnet: Github , Sie können das Problem abonnieren, um zu sehen, wie es behoben wird.