正在初始化webpack bundle.js中的第三部分插件
Initializing third-part plugin in webpack bundle.js
我的模块之一是外部插件(WOW效果),它需要在index.html中初始化才能正常工作,使用:
<script>
new WOW().init();
</script>
如果我将插件作为一个完全外部的文件使用,它就可以工作了。但当我用webpack编译它时,它会给我一个错误:
未捕获的ReferenceError:未定义wow。
我的配置文件如下:
module.exports = {
entry: './modules/_entry.js',
output: {
filename: 'bundle.js'
}
};
entry.js包含:
require("./wow.js");
我做错了什么?
有两种可能性:
-
Externals此脚本的好处是,您可以轻松地将本地脚本文件交换为CDN文件在这种方法中,脚本的源是一个外部供应商文件
- 有一个文件夹,你的供应商脚本,如WOW
- 使用
<script src="vendors/WOW.js">
在HTML文件中链接到它 - 您可以在另一个
<script>
标记内进行如上所述的初始化 - 将外部配置添加到您的webpack配置中:
var config = {
entry: [...],
output: {...},
externals: {
Wow: 'WOW'
},
module: {...},
plugins: [...]
};
- 从现在起,您可以访问所有应用程序模块中的人工模块
Wow
,也可以访问它们的import
或require
(尽管在WOW的情况下,我认为您不需要它)
-
Expose-loader通过这种方式,您可以移动到通常用作…嗯,modules:)的全局作用域模块在这种方法中,脚本的源是一个模块(您自己的模块或与npm一起安装的模块)
- 安装插件:
npm install expose-loader --save-dev
- 将公开加载程序配置添加到您的webpack配置文件中:
- 安装插件:
var config = {
entry: [...],
output: {...},
module: {
loaders: [{
...
}, {
test: 'path/to/your/module/wow.min.js',
loader: "expose?WOW"
}]
},
plugins: [...]
};
- 这将使
WOW
成为一个全局变量,可在<script>
标记中使用
相关文章:
- 如何在Angular2中使用jQuery插件
- 可以前端maven插件使用节点,npm已经安装
- 如何使jQuery插件函数可调用以供独立使用,而不在集合上操作
- 我的jQuery插件参数没有正确启动,遇到了问题
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- TableExport jquery插件:文件名和扩展名问题
- 如何在使用selectBoxIt JQuery插件时检测选项更改
- 为什么grunt contrib connect的中间件选项的第三个参数是未定义的
- jQuery插件-从插件中调用公共方法
- 压缩phonegap中ios的图像插件
- jQuery粘性插件可变顶部间距
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 显示浏览量最高的三篇文章
- 高亮显示与数组字符串一起使用时文本插件中断
- 在第三次onPageClick事件后,使用twbspagination插件和AJAX更新JS分页
- jQuery 三点插件,但可扩展
- 正在初始化webpack bundle.js中的第三部分插件
- 用三个插件将彩色线条加载到浏览器中
- Highcharts三重下钻圆角插件Bug