在 webpack 中导入非模块供应商脚本

Posted

技术标签:

【中文标题】在 webpack 中导入非模块供应商脚本【英文标题】:Import non-module vendor script in webpack 【发布时间】:2017-02-03 22:56:44 【问题描述】:

我正在使用AirConsole JS 服务构建一个应用程序。 AirConsole 仅以 .js 文件的形式提供他们的库,您可以使用通常的方式将其包含在您的页面中:

<script type="text/javascript" src="https://www.airconsole.com/api/airconsole-1.6.0.js"></script>

但是,我正在使用 Webpack 并希望将 import 脚本放入我的其他 JS 文件中。我尝试了一些没有运气的方法:

    创建一个名为vendor 的入口文件,该文件将导入airconsole.js 文件。这将创建一个 vendor.bundle.js 文件,我可以将其包含在我的页面中 将 AirConsole 路径添加到我的 index 入口点,以便脚本包含在 bundle.js 文件中。使用这种方法,我可以验证 AirConsole 代码是否包含在 bundle.js 文件中,但尝试创建 AirConsole 的新实例会导致 AirConsole 未定义

我是否在使用这些方法的正确轨道上?如果不是,那么推荐的导入非模块.js 文件的方法是什么?

【问题讨论】:

【参考方案1】:

最好的方法是我们称之为“匀场”的动作。您可以查看我们的新文档页面以获取信息。对于您的非模块,有几种不同的方法(取决于需要)。

https://webpack.js.org/guides/shimming/

【讨论】:

如果我使用this file,我似乎需要script-loader。当我尝试使用const airconsole = new AirConsole() 创建一个新实例时,它会抛出一个undefined 错误。 另外,script-loader 是在 webpack.config 中工作还是仅用于 require 语句。 您可以在配置中使用的每个加载器(推荐)您都可以使用“包含”属性来定位配置中加载器的文件的特定 abs 路径。

以上是关于在 webpack 中导入非模块供应商脚本的主要内容,如果未能解决你的问题,请参考以下文章

使用 webpack 2 拆分“供应商”块

如何在 karma 测试运行器中包含来自 webpack 的供应商捆绑包

如何在mac上的python中导入非标准包?此软件包不支持pip安装

如何在 CakePHP 3x 中导入供应商文件

从供应商文件中拆分 Webpack 代码?

如何使用 Webpack 拆分应用程序和供应商代码