Skip to content

Commit 6f9f638

Browse files
author
Dobromir Hristov
authored
Ensure highlight.js builds only the files that are imported (#724)
rdar://113252221
1 parent 3dfc583 commit 6f9f638

File tree

3 files changed

+4
-2
lines changed

3 files changed

+4
-2
lines changed

jest.config.js

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ module.exports = {
1414
moduleNameMapper: {
1515
'^docc-render/(.*)$': '<rootDir>/src/$1',
1616
'^theme/(.*)$': '<rootDir>/src/$1',
17+
'^highlight-js-alias/(.*)$': '<rootDir>/node_modules/highlight.js/$1',
1718
},
1819
testEnvironment: 'jest-environment-jsdom',
1920
setupFiles: ['./tests/unit/config.js'],

src/setup-utils/vue-config-utils.js

+2-1
Original file line numberDiff line numberDiff line change
@@ -53,6 +53,7 @@ function baseChainWebpack(config) {
5353
// Add theme fallback resolver
5454
config.resolve.alias.set('theme', themeUtils.getThemePaths());
5555
config.resolve.alias.set('docc-render', path.resolve(__dirname, '../'));
56+
config.resolve.alias.set('highlight-js-alias', path.dirname(require.resolve('highlight.js/package.json')));
5657

5758
// Add license header to built files
5859
config
@@ -68,7 +69,7 @@ function baseChainWebpack(config) {
6869
.plugin('LanguagesPlugin')
6970
.use(webpack.ContextReplacementPlugin, [
7071
/highlight\.js\/lib\/languages$/,
71-
new RegExp(`/(${[builtinLanguages, envLanguages].join('|')})$`),
72+
new RegExp(`^./(${[builtinLanguages, envLanguages].filter(Boolean).join('|')})\\.js$`),
7273
]);
7374
}
7475

src/utils/syntax-highlight.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ async function importHighlightFileForLanguage(language) {
9090
languageFile = await import(
9191
// See bug https://github.com/webpack/webpack/issues/13865
9292
/* webpackChunkName: "highlight-js-[request]" */
93-
`@/../node_modules/highlight.js/lib/languages/${file}`
93+
`highlight-js-alias/lib/languages/${file}`
9494
);
9595
}
9696

0 commit comments

Comments
 (0)