如何动态地将模块/对象捆绑到RollupJs输出文件中?我已经尝试了多种选择,但无法获得所需的预期输出。
我在下面整理了一个简短的示例项目,以帮助说明我在寻找什么。预期的输出应从作为依赖项动态注入的overrideApp对象中打印“ Hello John Doe”。
src / app.js
export default {
sayHello: function() {
console.log('Hello Mr.Roboto')
},
sayGoodBye: function() {
console.log('Goodbye Mr.Roboto')
}
}
index.js
import app from './src/app.js'
import overrideApp from 'overrideApp'
export default { ...app, ...overrideApp }.sayHello()
.rollup.config.js
let overrideApp = {
sayHello: function() {
console.log('Hello John Doe')
}
}
export default [
{
input: 'index.js',
external: ['overrideApp'], // This is not working, expecting to pass overrideApp to index.js
output: {
file: './dist/app.js',
format: 'umd',
name: 'bundle',
}
}
]
这完全是正确的,您在这里混合了很多无法协同工作的东西。
您正在寻找一个虚拟模块
npm install @rollup/plugin-virtual --save-dev
注意。在其他任何节点(例如node-resolve或commonjs)之前使用此插件,因此它们不会更改输出。
假设包含以下代码段的入口文件存在于src/entry.js
,并尝试从内存中加载batman
和加载src/robin.js
:
// src/entry.js
import batman from 'batman';
import robin from './robin.js';
console.log(batman, robin);
创建一个rollup.config.js
配置文件并导入插件:
import virtual from '@rollup/plugin-virtual';
export default {
entry: 'src/entry.js',
// ...
plugins: [
virtual({
batman: `export default 'na na na na na'`,
'src/robin.js': `export default 'batmannnnn'`
})
]
};
https://github.com/rollup/plugins/edit/master/packages/virtual
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句