Javascript 如何在RollupJs输出中动态绑定模块/对象?
如何将模块/对象动态绑定到RollupJs输出文件中?我已经尝试了很多不同的选择,但不能得到我期待的预期产出 我在下面列出了一个简短的示例项目,以帮助说明我在寻找什么。预期的输出应该从作为依赖项动态注入的overrideApp对象打印“Hello John Doe” src/app.jsJavascript 如何在RollupJs输出中动态绑定模块/对象?,javascript,node.js,rollupjs,Javascript,Node.js,Rollupjs,如何将模块/对象动态绑定到RollupJs输出文件中?我已经尝试了很多不同的选择,但不能得到我期待的预期产出 我在下面列出了一个简短的示例项目,以帮助说明我在寻找什么。预期的输出应该从作为依赖项动态注入的overrideApp对象打印“Hello John Doe” src/app.js export default { sayHello: function() { console.log('Hello Mr.Roboto') }, sayGoodBye: function(
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',
}
}
]
这是完全正确的,你在这里混合了很多不能一起工作的东西 您正在寻找一个虚拟模块 安装 用法 注意。在任何其他插件(如node resolve或commonjs)之前使用此插件,这样它们就不会改变输出 假设包含以下代码段的条目文件存在于
src/entry.js
,并尝试从内存加载batman
和src/robin.js
:
//src/entry.js
从“蝙蝠侠”进口蝙蝠侠;
从“/robin.js”导入robin;
控制台日志(蝙蝠侠,罗宾);
创建一个rollup.config.js
并导入插件:
import virtual from'@rollup/plugin virtual';
导出默认值{
条目:“src/entry.js”,
// ...
插件:[
虚拟的({
蝙蝠侠:`导出默认值'不,不,不,`,
'src/robin.js':'export default'batmannnn'`
})
]
};
npm install @rollup/plugin-virtual --save-dev