使用webpack将单个模块导出为库

时间:2017-03-17 04:16:32

标签: webpack

我有一个网络应用程序,其中所有的javascript都捆绑到了webpack中。

我想通过clientide api向用户公开方法的子集。

我以为我可以通过图书馆

来做到这一点
 output: {
    path: BUILD_DIR,
    filename: 'bundle.js',
    publicPath: 'https://localhost:3000',
    library: 'myLibrary'
  }

这样做,我可以在控制台中获得myLibary,但它是一个空对象。我并不希望公开发布的所有方法都公开,但我希望提供具体的公共方法,但我无法弄清楚如何做到这一点。

1 个答案:

答案 0 :(得分:1)

您需要在入口点导出要公开的内容。它的工作方式与常规导出类似,您只能包含所需的导出。例如,使用此入口点:

import module1 from './module';
import publicModule from './otherModule';
import privateModule from './privateModule';

function privateFun() {
  console.log('not exposed');
}

export function publicFun() {
  console.log('is exposed as myLibrary.public');
}

// Re-export, with possible rename
export { publicModule, module1 as firstModule };

如果要导出导入的其他模块并重新导出它们,则仅公开您导出的内容。在这种情况下,您将可以访问以下属性:

myLibrary.firstModule
myLibrary.publicFun
myLibrary.publicModule