mirror of https://github.com/twbs/bootstrap.git
				
				
				
			
		
			
	
	
		
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
|  | import path from 'node:path' | ||
|  | import process from 'node:process' | ||
|  | import { fileURLToPath } from 'node:url' | ||
|  | import { babel } from '@rollup/plugin-babel' | ||
|  | import { nodeResolve } from '@rollup/plugin-node-resolve' | ||
|  | import replace from '@rollup/plugin-replace' | ||
|  | import banner from './banner.mjs' | ||
|  | 
 | ||
|  | const __dirname = path.dirname(fileURLToPath(import.meta.url)) | ||
|  | 
 | ||
|  | const BUNDLE = process.env.BUNDLE === 'true' | ||
|  | const ESM = process.env.ESM === 'true' | ||
|  | 
 | ||
|  | let destinationFile = `bootstrap${ESM ? '.esm' : ''}` | ||
|  | const external = ['@popperjs/core'] | ||
|  | const plugins = [ | ||
|  |   babel({ | ||
|  |     // Only transpile our source code
 | ||
|  |     exclude: 'node_modules/**', | ||
|  |     // Include the helpers in the bundle, at most one copy of each
 | ||
|  |     babelHelpers: 'bundled' | ||
|  |   }) | ||
|  | ] | ||
|  | const globals = { | ||
|  |   '@popperjs/core': 'Popper' | ||
|  | } | ||
|  | 
 | ||
|  | if (BUNDLE) { | ||
|  |   destinationFile += '.bundle' | ||
|  |   // Remove last entry in external array to bundle Popper
 | ||
|  |   external.pop() | ||
|  |   delete globals['@popperjs/core'] | ||
|  |   plugins.push( | ||
|  |     replace({ | ||
|  |       'process.env.NODE_ENV': '"production"', | ||
|  |       preventAssignment: true | ||
|  |     }), | ||
|  |     nodeResolve() | ||
|  |   ) | ||
|  | } | ||
|  | 
 | ||
|  | const rollupConfig = { | ||
|  |   input: path.resolve(__dirname, `../js/index.${ESM ? 'esm' : 'umd'}.js`), | ||
|  |   output: { | ||
|  |     banner: banner(), | ||
|  |     file: path.resolve(__dirname, `../dist/js/${destinationFile}.js`), | ||
|  |     format: ESM ? 'esm' : 'umd', | ||
|  |     globals, | ||
|  |     generatedCode: 'es2015' | ||
|  |   }, | ||
|  |   external, | ||
|  |   plugins | ||
|  | } | ||
|  | 
 | ||
|  | if (!ESM) { | ||
|  |   rollupConfig.output.name = 'bootstrap' | ||
|  | } | ||
|  | 
 | ||
|  | export default rollupConfig |