你如何为已经模块化的库构建一个独立的外部依赖js文件?
How do you build a standalone external dependency js file for a library that has been modularised?
基本上,我有许多遗留 Web 应用程序引用和使用来自 CDN (Kendo UI) 的库。我的任务是删除对远程主机的此类请求,因此我想将库合并到现有的 npm 脚本任务中,该任务将所有依赖项收集到应用程序引用的单个本地 js 文件中。
我遇到的问题是 this library 不提供可以立即使用的预编译 js 文件(不像 jquery 或 angular 等其他库),但它是模块化的,需要 webpack 或 browserify 才能使用它。
由于我们的遗留应用程序不使用模块化方法来加载依赖项,而且我没有重写它们的余地,我想以某种方式将模块化库打包到一个等效的 js 文件中,该文件将加载库,因此我的应用程序可以简单地通过 <script>
引用来访问它。
我尝试使用 browserify 从仅包含对库的 require
引用的源 js 文件进行编译,但随后在我的应用程序中引用编译后的文件会导致错误,因为库的函数不是可用于我的应用程序。
谁能指出我正确的方向?
如果您使用一些基于模块的库,并且您想独立使用它们,则需要做两件事。
将模块公开到全局范围。也许使用暴露加载器 https://github.com/webpack-contrib/expose-loader 或者甚至只是分配给 window 对象。
如果模块也使用了一个你也包括独立的库,你需要告诉 webpack 这些,。
例如
{
externals: {
jquery: 'jQuery'
}
// other stuff..
}
最后,当您包含这些时,请记住脚本标签的顺序。例如。确保在捆绑 javascript.
之前包含 jquery
基本上,我有许多遗留 Web 应用程序引用和使用来自 CDN (Kendo UI) 的库。我的任务是删除对远程主机的此类请求,因此我想将库合并到现有的 npm 脚本任务中,该任务将所有依赖项收集到应用程序引用的单个本地 js 文件中。
我遇到的问题是 this library 不提供可以立即使用的预编译 js 文件(不像 jquery 或 angular 等其他库),但它是模块化的,需要 webpack 或 browserify 才能使用它。
由于我们的遗留应用程序不使用模块化方法来加载依赖项,而且我没有重写它们的余地,我想以某种方式将模块化库打包到一个等效的 js 文件中,该文件将加载库,因此我的应用程序可以简单地通过 <script>
引用来访问它。
我尝试使用 browserify 从仅包含对库的 require
引用的源 js 文件进行编译,但随后在我的应用程序中引用编译后的文件会导致错误,因为库的函数不是可用于我的应用程序。
谁能指出我正确的方向?
如果您使用一些基于模块的库,并且您想独立使用它们,则需要做两件事。
将模块公开到全局范围。也许使用暴露加载器 https://github.com/webpack-contrib/expose-loader 或者甚至只是分配给 window 对象。
如果模块也使用了一个你也包括独立的库,你需要告诉 webpack 这些,。
例如
{
externals: {
jquery: 'jQuery'
}
// other stuff..
}
最后,当您包含这些时,请记住脚本标签的顺序。例如。确保在捆绑 javascript.
之前包含 jquery