不知道如何剖析你的代码 - 你错过了对 Popper 的全部依赖。
但这就是我会做的(提示:我获取了 BS5 源代码并删除了所有不需要的东西。)
假设您在 Bootstrap 5 的一个分支上进行编译:
File: build\rollup.config.mk.js
:
'use strict'
const path = require('path')
const { babel } = require('@rollup/plugin-babel')
const { nodeResolve } = require('@rollup/plugin-node-resolve')
const replace = require('@rollup/plugin-replace')
const banner = require('./banner.js')
let fileDest = `bootstrap-mk`
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'
}
const rollupConfig = {
input: path.resolve(__dirname, `../js/index.mk.umd.js`),
output: {
banner,
file: path.resolve(__dirname, `../dist/js/${fileDest}.js`),
format: 'umd',
globals
},
external,
plugins
}
rollupConfig.output.name = 'bootstrap'
module.exports = rollupConfig
... 并且 ...
File: js\index.mk.umd.js
import Tooltip from './src/tooltip'
export default {
Tooltip
}
然后调用:rollup --config build/rollup.config.mk.js --sourcemap
从命令行,或者将类似的内容添加到packacge.json
\ "scripts
“ 部分:
"js-compile-mk": "rollup --config build/rollup.config.mk.js --sourcemap",
...然后打电话npm run js-compile-mk
从命令行。
输出将是一个名为:dist\js\bootstrap-mk.js
(和地图文件)
如果你不想使用叉子,而是使用叉子node_modules
子文件夹,然后继续更改路径build\rollup.config.mk.js
file.