如何为已经模块化的库构建独立的外部依赖js文件?

时间:2017-09-26 09:37:53

标签: javascript webpack kendo-ui browserify

基本上我有许多遗留的Web应用程序可以引用和使用CDN中的库(Kendo UI)。我有一项任务是删除对远程主机的此类请求,因此我想将库加载到现有的npm脚本任务中,该任务将所有依赖项收集到应用程序引用的单个本地js文件中。

我遇到的问题是this library没有提供可以立即使用的预编译的js文件(与jquery或angular等其他库不同),但它是模块化的,需要webpack或browserify来用它。

由于我们的遗留应用程序不使用模块化方法来加载依赖项,并且我没有空间来重写它们,我想以某种方式将模块化库打包到一个等效的js文件中,该文件将加载库以便我的应用程序可以访问它只是通过<script>引用它。

我尝试使用browserify从源js文件进行编译,该文件只包含对库的require引用,但是在我的应用程序中引用已编译的文件会导致错误,因为库的函数不可用于我的申请。

有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:1)

如果您使用的是某些基于模块的库,并且您想独立使用它们,则需要做两件事。

  1. 将模块公开给全局范围。也许使用公开加载器https://github.com/webpack-contrib/expose-loader或甚至只是分配给窗口对象。

  2. 如果模块也使用了您也包括独立的库,则需要告诉webpack这些,。

  3. 例如

    {
      externals: {
        jquery: 'jQuery' 
      }
      // other stuff..
    }
    

    最后,当您包含这些内容时,请记住脚本标记的顺序。例如。确保在捆绑的javascript之前包含jquery。