我正在使用汇总来构建一个依赖于 jquery 和骨干网的库。花了三个星期来构建它,但现在我意识到我的捆绑代码包含 jquery 的源代码和其中的主干。因此,将我的库包含在已经有 jquery 的页面上只会使 jquery 翻倍,从而导致很多不必要的膨胀。
开发人员如何处理这个问题?
我正在使用汇总来构建一个依赖于 jquery 和骨干网的库。花了三个星期来构建它,但现在我意识到我的捆绑代码包含 jquery 的源代码和其中的主干。因此,将我的库包含在已经有 jquery 的页面上只会使 jquery 翻倍,从而导致很多不必要的膨胀。
开发人员如何处理这个问题?
在这种情况下,最好将 jQuery 和 Backbone 排除在包之外,并按照以下方式进行配置:
// rollup.config.js
export default {
entry: 'src/main.js',
moduleName: 'myLibrary',
targets: [
{ dest: 'dist/my-library.umd.js', format: 'umd' }, // pkg.main
{ dest: 'dist/my-library.es.js', format: 'es' } // pkg.module
],
external: [ 'jquery', 'backbone' ],
globals: {
jquery: 'jQuery',
backbone: 'Backbone'
}
};
这样,如果有人将应用程序与您的库捆绑在一起,jQuery 和 Backbone 将被包含,但只包含一次。另一方面,如果您的库作为<script>
标签包含在内,那么只要<script>
事先还有 jQuery 和 Backbone 的标签,它就可以工作。