Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-docs.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSarah German <sgerman@gitlab.com>2023-06-16 12:26:36 +0300
committerAchilleas Pipinellis <axil@gitlab.com>2023-06-16 12:26:36 +0300
commitd68dcb326cf92975b8494edc5dfda7574485993f (patch)
tree797794aa9bb7f03bbb375b1ddaa750525aa30c83
parent5b17f047b24afe90a256d6fdeec83f7f0867e4f5 (diff)
Skip unneeded search bundles when compiling JavaScript
-rw-r--r--rollup.config.js167
1 files changed, 88 insertions, 79 deletions
diff --git a/rollup.config.js b/rollup.config.js
index 50f5a052..0454d4d7 100644
--- a/rollup.config.js
+++ b/rollup.config.js
@@ -14,84 +14,93 @@ function mapDirectory(file) {
return file.replace('content/', 'public/');
}
-// Global assets are copied here.
-const vendorDir = './public/assets/vendor';
+const vendorDir = './public/assets/vendor'; // Global assets are copied here
+const searchBackend = process.env.SEARCH_BACKEND || 'google';
-module.exports = globSync('content/frontend/**/*.js').map((file) => ({
- input: file,
- output: {
- file: mapDirectory(file),
- format: 'iife',
- name: file,
- inlineDynamicImports: true,
- globals: {
- vue: 'Vue',
- jquery: '$',
+module.exports = globSync('content/frontend/**/*.js')
+ // Drop search bundles that aren't required in this build.
+ .filter((file) => {
+ const fileName = file.split('/').pop();
+ return (
+ fileName.startsWith(searchBackend) ||
+ (!fileName.startsWith('google') && !fileName.startsWith('lunr'))
+ );
+ })
+ .map((file) => ({
+ input: file,
+ output: {
+ file: mapDirectory(file),
+ format: 'iife',
+ name: file,
+ inlineDynamicImports: true,
+ globals: {
+ vue: 'Vue',
+ jquery: '$',
+ },
},
- },
- external: ['vue', 'jquery'],
- cache: true,
- plugins: [
- nodeResolve({ browser: true, preferBuiltins: false }),
- commonjs(),
- vue(),
- url({
- destDir: 'public/assets/images',
- publicPath: '/assets/images/',
- fileName: 'icons.svg',
- }),
- babel({
- exclude: 'node_modules/**',
- babelHelpers: 'bundled',
- }),
- json(),
- css(),
- replace({
- preventAssignment: true,
- 'process.env.NODE_ENV': JSON.stringify('production'),
- }),
- terser(),
- copy({
- copyOnce: true,
- hook: 'closeBundle',
- targets: [
- {
- src: './node_modules/mermaid/dist/mermaid.min.js*',
- dest: vendorDir,
- },
- {
- src: './node_modules/vue/dist/vue.min.js',
- dest: vendorDir,
- },
- {
- src: './node_modules/lunr/lunr.min.js',
- dest: vendorDir,
- },
- {
- src: './node_modules/jquery/dist/jquery.slim.min.js',
- dest: vendorDir,
- },
- {
- src: './node_modules/bootstrap/dist/js/bootstrap.bundle.min.js*',
- dest: vendorDir,
- },
- {
- src: './node_modules/@gitlab/ui/dist/utility_classes.css*',
- dest: vendorDir,
- },
- {
- src: './node_modules/@gitlab/ui/dist/index.css*',
- dest: vendorDir,
- },
- {
- src: './node_modules/@gitlab/fonts/gitlab-sans/GitLabSans.woff2',
- dest: vendorDir,
- },
- {
- src: './node_modules/@gitlab/fonts/jetbrains-mono/JetBrainsMono*',
- dest: vendorDir,
- },
- ],
- }),
- ],
-}));
+ external: ['vue', 'jquery'],
+ cache: true,
+ plugins: [
+ nodeResolve({ browser: true, preferBuiltins: false }),
+ commonjs(),
+ vue(),
+ url({
+ destDir: 'public/assets/images',
+ publicPath: '/assets/images/',
+ fileName: 'icons.svg',
+ }),
+ babel({
+ exclude: 'node_modules/**',
+ babelHelpers: 'bundled',
+ }),
+ json(),
+ css(),
+ replace({
+ preventAssignment: true,
+ 'process.env.NODE_ENV': JSON.stringify('production'),
+ }),
+ terser(),
+ copy({
+ copyOnce: true,
+ hook: 'closeBundle',
+ targets: [
+ {
+ src: './node_modules/mermaid/dist/mermaid.min.js*',
+ dest: vendorDir,
+ },
+ {
+ src: './node_modules/vue/dist/vue.min.js',
+ dest: vendorDir,
+ },
+ {
+ src: './node_modules/lunr/lunr.min.js',
+ dest: vendorDir,
+ },
+ {
+ src: './node_modules/jquery/dist/jquery.slim.min.js',
+ dest: vendorDir,
+ },
+ {
+ src: './node_modules/bootstrap/dist/js/bootstrap.bundle.min.js*',
+ dest: vendorDir,
+ },
+ {
+ src: './node_modules/@gitlab/ui/dist/utility_classes.css*',
+ dest: vendorDir,
+ },
+ {
+ src: './node_modules/@gitlab/ui/dist/index.css*',
+ dest: vendorDir,
+ },
+ {
+ src: './node_modules/@gitlab/fonts/gitlab-sans/GitLabSans.woff2',
+ dest: vendorDir,
+ },
+ {
+ src: './node_modules/@gitlab/fonts/jetbrains-mono/JetBrainsMono*',
+ dest: vendorDir,
+ },
+ ],
+ }),
+ ],
+ }));