【发布时间】:2016-10-28 07:43:53
【问题描述】:
我正在尝试使用 webpack 来 require wowjs,这是一个从 coffeescript 编译的浏览器插件。
dist/ 中的代码期望在全局上下文中执行。所以在coffeescript中它看起来像:
class @WOW
...
转译为
(function() {
this.WOW = function() { ... }
}).call(this);
当在全局上下文中执行时,这允许您在其他地方调用插件,例如 new WOW().init()。
我一直在玩imports loader,所以我可以像这样发出请求和调用:
require("imports?this=>window!wowjs")
new window.WOW().init()
请注意,像new WOW().init() 这样的调用将不起作用,因为 webpack 将此代码包装在它自己的模块/上下文中。我可以忍受这个,但我还是觉得我在这里错过了什么?
无论如何,如果我尝试按照文档中的建议将其移至我的webpack.config.js,我将无法使其正常工作。我的配置如下所示:
{
...
loaders: [
{
test: /wowjs/, loader: "imports?this=>window"
}
],
...
}
加载程序部分看起来很简单,但它似乎不起作用。文档使用如下示例:
{ test: require.resolve('wowjs'), loader: 'imports?this=>window' }
但这似乎对我也不起作用。
我一直认为这一定是用 coffeescript 编写的模块中的一个常见问题,但我无法解决任何问题。
【问题讨论】:
标签: javascript webpack loader