Oti*_*ght 8 javascript plugins bundle rollup ecmascript-6
我遇到过一种情况,我通过汇总捆绑多个文件,文档中提供了这样的示例cli。
我导出一组捆绑包,如下所示:
export default [
{
input: 'packages/A/index.js',
output: {
name: '[name]Bundle',
file: '[name].umd.js',
format: 'umd'
}
},
{
input: 'packages/B/index.js',
output: {
name: '[name]Bundle',
file: '[name].umd.js',
format: 'umd'
}
}
];
Run Code Online (Sandbox Code Playgroud)
然后我有一个函数可以为每个包添加一个通用配置(想想插件),比如:
import path from "path";
import alias from '@rollup/plugin-alias';
import resolve from '@rollup/plugin-node-resolve';
const augment = configs => {
const generateAlias = (symbol, location) => {
return {
find: symbol,
replacement: path.resolve(process.cwd(), location)
};
}
const entries = [
generateAlias("@", "src/"),
generateAlias("~", "src/assets/scss/"),
generateAlias("#", "src/assets/img/"),
generateAlias("%", "config/"),
];
const plugins = [
alias({
entries
}),
resolve({ browser: true }),
];
return configs.map(entry => {
return {
...entry,
plugins
}
});
}
export {
augment
}
Run Code Online (Sandbox Code Playgroud)
我将上面导出的数组包装如下augment:
const bundles = [/* above example */];
export default augment(bundles);
Run Code Online (Sandbox Code Playgroud)
现在这一切都工作正常,但我有两个插件,我实际上不想将它们应用到每个捆绑包,我只想在所有捆绑包构建完成后运行它们,这两个插件是;rollup-plugin-serve和rollup-plugin-workbox现在实际上与捆绑的任何文件都没有任何关系,并且多次实例化没有任何意义。
作为函数的一部分,我想做的augment是将它们附加到返回数组的末尾,例如:
const exportedArray = configs.map(/* function from above */);
exportedArray.push(...[
{
plugins: [
serve({
host,
port,
contentBase: 'dist/'
})
]
}
]);
return exportedArray;
Run Code Online (Sandbox Code Playgroud)
这不会包含input,我已经尝试了上面的方法并且汇总抱怨,替代选项是将这些插件添加到阵列上的最终包中,我只是更喜欢实例化它们而不将它们绑定到特定包的想法。
Rollup 需要一个输入文件才能工作,但这并不意味着您不能简单地丢弃文件的结果。您可以创建一个空文件empty.js(或者在其中添加一些注释)并将其用作输入。只需忽略输出属性,这样结果就不会写入任何地方。
- -编辑 - -
有点像这样:
export default {
input: './empty.js',
plugins: [{
name: 'test plugin',
load() {
console.log('test plugin')
}
}]
}
Run Code Online (Sandbox Code Playgroud)
- -编辑 - -
或者,您可以写入虚拟文件并再次将其删除
export default {
input: './empty.js',
plugins: [{
name: 'test plugin',
load() {
console.log('test plugin')
}
}]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4685 次 |
| 最近记录: |